08 2012 档案
摘要: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本题目包含多组测试,请处理到文件结束。在每个
阅读全文
摘要:敌兵布阵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国都掌握的一清二楚,每个工兵营地的人数
阅读全文
摘要:一般涉及矩阵求幂的问题都要求很大的幂,需要快速求出,这就使人想到了二分法。想到二分法后,首先想到递归:____ 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(...
阅读全文
摘要: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/...
阅读全文
摘要:#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++) { .
阅读全文
摘要: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
阅读全文
摘要:/*一道坑爹的水题,表示,你只要判断边数和点数之间的关系是不是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..
阅读全文
摘要: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...
阅读全文
摘要:先附上测试数据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
阅读全文
摘要:spfa的模板,但是,是用邻接表存边的,但是邻接表神物,不懂邻接表的可以去看我的邻接表随笔 1 #include<stdio.h> 2 #include<string.h> 3 #include<queue> 4 #include<algorithm> 5 using namespace std; 6 #define xx 10005 7 #define INF 0x2fffffff 8 queue<int>que; 9 int t,pre[xx];//边标号,表头;10 int dis[xx],inque[xx];11 struct
阅读全文
摘要:1 //表示用到了gcd,本身没什么好说的 2 #include<stdio.h> 3 __int64 gcd(__int64 a,__int64 b) 4 { 5 if(b==0) 6 return a; 7 return gcd(b,a%b); 8 } 9 int main() 10 {11 __int64 t,a,b,c,d;12 __int64 x,y,z;13 __int64 i;14 scanf("%I64d",&t);15 while(t--)16 {17 scanf("%I64d%...
阅读全文
摘要:1 //二分查找 2 #include<stdio.h> 3 #include<math.h> 4 #define eps 1e-7 5 double fun(double x) 6 { 7 return 8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6; 8 } 9 double bin_search(double Y)10 {11 double low=0.0,high=100.0,mid;12 while(high-low>eps)13 {14 mid=(low+high)/2.0;15 if(...
阅读全文
摘要:1 //最基础的top排序 2 #include<stdio.h> 3 #include<string.h> 4 #include<algorithm> 5 using namespace std; 6 #define xx 505 7 int g[xx][xx],indegree[xx]; 8 int n,m; 9 void topsort()10 {11 int i,j,k;12 for(i=1;i<=n;i++)13 {14 for(j=1;j<=n;j++)15 {16 if(indegree[j]==0...
阅读全文
摘要:1 #include<stdio.h> 2 int main() 3 { 4 __int64 a,b,ans; 5 while(scanf("%I64X%I64X",&a,&b)!=EOF) 6 { 7 ans=a+b; 8 if(ans<0) 9 {10 printf("-");11 ans=-ans;12 }13 printf("%I64X\n",ans);14 }15 return 0;16 }
阅读全文
摘要:1 //裸的kruskal,如果不会的多看下并查集吧,不多说了 2 #include<stdio.h> 3 #include<string.h> 4 #include<algorithm> 5 using namespace std; 6 #define maxn 100 7 int fa[maxn],rank[maxn]; 8 struct node 9 {10 int st,nd,ln;11 }edge[maxn*maxn];12 int cmp(node a,node b)13 {14 return a.ln<b.ln;15 }16 void i
阅读全文
摘要:/*kruskal的模板,表示建图那里稍微有一点点麻烦, 我用的map建图,忘记了只有27个字母,也可以用ascii码来建图。*/#include<stdio.h>#include<string.h>#include<map>#include<string>#include<algorithm>using namespace std;#define maxn 27int fa[maxn];int rank[maxn];struct node{ int st,int nd,int ln;}edge[maxn*maxn];int cmp(
阅读全文
摘要://我想说的是这题描述有点问题,不清楚,水题就没什么好说的了#include<stdio.h>#define min(x,y)(x)>(y)?(y):(x)int main(){ int t; int n,m,ans,c,i; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); ans=10000000; for(i=1;i<=n;i++) { scanf("%d",&c); ans=min(ans,c); ...
阅读全文
摘要:1 //貌似可以用离散化做,本人菜鸟,搞不定,所以大家将就着看吧。 2 #include<stdio.h> 3 #include<string.h> 4 #include<algorithm> 5 using namespace std; 6 #define max(x,y) (x)>(y)?(x):(y) 7 #define maxn 10000000 8 int fa[maxn]; 9 int rank[maxn];10 int ans;11 int n;12 void init()13 {14 int i;15 for(i=1;i<maxn
阅读全文
浙公网安备 33010602011771号