摘要: BillboardTime Limit: 20000/8000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4947Accepted Submission(s): 2294Problem DescriptionAt the entrance to the university, there is a huge rectangular billboard of size h*w (h is its height and w is its width). The board is the 阅读全文
posted @ 2012-09-04 21:43 M_cag 阅读(164) 评论(0) 推荐(0)
摘要: I Hate ItTime Limit: 9000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 18019Accepted Submission(s): 6947Problem Description很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input本题目包含多组测试,请处理到文件结束。在每个 阅读全文
posted @ 2012-08-16 18:10 M_cag 阅读(206) 评论(0) 推荐(0)
摘要: 敌兵布阵Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18917Accepted Submission(s): 8234Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数 阅读全文
posted @ 2012-08-16 15:41 M_cag 阅读(4259) 评论(0) 推荐(0)
摘要: 一般涉及矩阵求幂的问题都要求很大的幂,需要快速求出,这就使人想到了二分法。想到二分法后,首先想到递归:____ DFS(int a){ ____ ret1; if(a==1) return G2; ret1=DFS(a/2); ret1=Cheng(ret1,ret1); if(a%2)ret1=Cheng(ret1,G2); return ret1;}注:____是矩阵结构体的类型,Cheng代表两个矩阵相乘返回的值,DFS函数调用时参数a即为要乘的次数但是递归毕竟是有函数调用的时间,所以不是很快,于是我们就可以用迭代写出更快的程序:matrix pow(... 阅读全文
posted @ 2012-08-14 21:50 M_cag 阅读(220) 评论(0) 推荐(0)
摘要: 1 #include<stdio.h> 2 int main() 3 { 4 int a,b,k,x,y; 5 int flag,i; 6 while(scanf("%d%d%d",&a,&b,&k)!=EOF) 7 { 8 if(a==0&&b==0) 9 break;10 flag=1;11 x=a,y=b;12 for(i=1;i<=k;i++)13 {14 if(a%10==b%10)15 a/... 阅读全文
posted @ 2012-08-11 14:08 M_cag 阅读(224) 评论(0) 推荐(0)
摘要: #include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define maxn 105#define INF 0x2fffffffint g[maxn][maxn];int vis[maxn];int dis[maxn];void prim(int n){ int min,i,j,x,ans=0; memset(vis,0,sizeof(vis)); fill(dis,dis+maxn,INF); dis[1]=0; for(i=1;i<=n;i++) { . 阅读全文
posted @ 2012-08-11 11:19 M_cag 阅读(160) 评论(0) 推荐(0)
摘要: 1 //只需要判断入度为零的点是不是只有1个就可以了 2 #include<stdio.h> 3 #include<string.h> 4 #include<string> 5 #include<algorithm> 6 #include<map> 7 using namespace std; 8 #define maxn 1005 9 int indegree[maxn];10 map<string,int>re;11 void init()12 {13 re.clear();14 memset(indegree,0,s 阅读全文
posted @ 2012-08-10 20:52 M_cag 阅读(166) 评论(0) 推荐(0)
摘要: /*一道坑爹的水题,表示,你只要判断边数和点数之间的关系是不是edge+1=node,再用并查集判断环就ac了*/#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define maxn 100005int fa[maxn];bool vis[maxn];void init(){ int i; for(i=0;i<maxn;i++) fa[i]=i;}int findfather(int x){ if(x!=fa[x]) fa[x]=findfath.. 阅读全文
posted @ 2012-08-10 16:35 M_cag 阅读(217) 评论(0) 推荐(0)
摘要: 1 #include<stdio.h> 2 #include<algorithm> 3 using namespace std; 4 #define maxn 1000001 5 __int64 a[maxn]; 6 void init() 7 { 8 __int64 i,temp; 9 __int64 count;10 for(i=1;i<maxn;i++)11 {12 count=1;13 temp=i;14 while(temp!=1)15 {16 if(temp%2... 阅读全文
posted @ 2012-08-10 14:56 M_cag 阅读(185) 评论(0) 推荐(0)
摘要: 先附上测试数据8 125 8 296 1 128 3 111 2 43 1 224 3 177 4 25 6 5 98 7 71 6 93 2 196 7 48个点12条边#include<stdio.h>#include<string.h>#include<queue>#include<algorithm>using namespace std;#define xx 10005int t,pre[xx];//边标号,表头;struct node{ int st,nd,ln,next;//起点,终点,长度,下一条边;}edge[xx];void 阅读全文
posted @ 2012-08-10 10:50 M_cag 阅读(1879) 评论(0) 推荐(0)