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。做过挺多次了 不贴代码了