读书人

130921周赛结题汇报

发布时间: 2013-09-27 14:23:43 作者: rapoo

130921周赛结题报告

这是这学期第二次周赛的题目,第一周的题目略坑,还在研究中。

A. The area

这道题题意是有一个开口向下的抛物线,与一条直线有两个交点,且交点位于抛物线顶点的两段。

给出两交点和顶点的坐标,求围成的面积。

就是一道简单的积分题。我写错了个变量,debug了很久。。sb了。。

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define INF 10000using namespace std;int map[27][27]={0};int n,s;void init(){    int i,j,t;    char ch;    for (i=0; i<n; i++)    {        for (j=0; j<n; j++)            map[i][j]=INF;        map[i][i]=0;    }    for (i=0; i<n-1; i++)    {        cin>>ch>>t;        while(t>0)        {            cin>>ch>>j;            map[i][ch-'A']=map[ch-'A'][i]=j;            t--;        }    }}void prime(){    int i,j,k=0;    s=0;    int visit[30]={0};    int low[30]={0};    for (i=0; i<n; i++)        low[i]=map[0][i];    visit[0]=1;    for (i=1; i<n; i++)    {        int t=INF;        for (j=0; j<n; j++)            if (!visit[j] && low[j]<t)            {                k=j;                t=low[j];            }        s=s+low[k];        visit[k]=1;        for (j=0; j<n; j++)            if (!visit[j] && low[j]>map[k][j])                low[j]=map[k][j];    }    cout<<s<<endl;}int main (){    while(scanf("%d",&n)!=EOF)    {        if (n==0) break;        init();//        for (int i=0; i<n; i++)//        {//            for (int j=0; j<n; j++)//                cout<<map[i][j]<<" ";//            cout<<endl;//        }        prime();    }    return 0;}

I Knight Moves
HDU 1372 BFS

这道也是很基础的BFS。做过挺多次了 不贴代码了

读书人网 >编程

热点推荐