03 2013 档案
摘要:#include#define N 100005int a[N];void fn(int c){ int p = a[c]; if(p != 0) { fn(p); a[p] = c; }}int main(){// freopen("in.txt","r",stdin); int s,i,n,...
阅读全文
摘要:#include#include#include#include#includeusing namespace std;char c[1005];/*int Is(char c){ if(c=='+' || c=='-' || c=='*' || c=='/') return 1; else r...
阅读全文
摘要:#includevoid fn(int n){int t=n;for(int i=2; i*i<=n; ++i){ if(n%i == 0) t -= t/i;while( ! (n%i))n/=i;}if(n!=1) t = t/n*(n-1); printf("%d\n",t); }int ma...
阅读全文
摘要:Interval时间限制:2000 ms | 内存限制:65535 KB 描述 There are n(1 <= n <= 100000) intervals [ai, bi] and m(1 <= m <= 100000) queries, -100000 <= ai <= bi <= 100000 are integers.Each query contains an integer xi(-100000 <= x <= 100000). For each query, you should answer how many interv
阅读全文
摘要:士兵杀敌(四)时间限制:2000 ms | 内存限制:65535 KB描述南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人...
阅读全文
摘要:#include<stdio.h>#define N 50000int k;int a[N];inline void fn(int a,int n){ if(a<n) { k++; if(k>1000000) k/=1000000; fn(a+1,n-(a+1)); }}int main(){ int t,m,j; for(int i=0;i<=N/100;i++) { j=1; k=0; for(;j<=i/2;) fn(j++,i-j); a[i]=k; } scanf("%d",&t); while(t--) { scanf
阅读全文
摘要:#include<stdio.h>int fa[50005]={0};int rank[50005]={0};int n;void initial(){ for(int i=1;i<=n;i++) { fa[i]=i; rank[i]=0; }}int getfather(int x){ if(x==fa[x]) return x; int oldfa = fa[x]; fa[x]=getfather(fa[x]); rank[x]=(rank[x]+rank[oldfa])%3; //用向量的形式很快就可以看出来 return...
阅读全文
摘要:#include#includeusing namespace std;typedef struct Value{ int v,w; //v是价值 w是重量}Value;bool cmp(Value a,Value b) //按物品的价值从大到小排序{ return a.v>b.v||(a.v=...
阅读全文
摘要:#include#includeusing namespace std;int main(){ int n,m,i,j,t,a[12010]; long long T,s; scanf("%d",&n); while(n--) { T=0; ...
阅读全文