Codeforces Round #279 (Div. 2)
来源:互联网 发布:mac os x 10.11.5 cdr 编辑:程序博客网 时间:2024/06/07 16:57
A
D
#include<cstdio>using namespace std;const int N=5000;int a[N],b[N],c[N];int n,na,nb,nc;int min(int a,int b){ if(a<b) return a; return b;}int main(){ int i,d,ans; //freopen("in.txt","r",stdin); while(scanf("%d",&n)!=EOF) { na=0;nb=0;nc=0; for(i=1;i<=n;i++) { scanf("%d",&d); if(d==1) a[na++]=i; else if(d==2) b[nb++]=i; else if(d==3) c[nc++]=i; } ans=min(na,min(nb,nc)); printf("%d\n",ans); for(i=0;i<ans;i++) printf("%d %d %d\n",a[i],b[i],c[i]); } return 0;}
B
建立前向表和后向表,n为偶数是正序填写第1,3,5....位数,逆序填写第n-2,n-4...0位数,n为奇数时正序填写第1,3,5....位数,然后找到位于0为的同学编号依次填写0,2,4...位数。
#include<cstdio>#include<cstring>using namespace std;const int N=1000005;int fir[N],las[N],f,l,n;int ans[200005],p[N];int main(){ int a,b,i,fl; //freopen("in.txt","r",stdin); while(scanf("%d",&n)!=EOF) { memset(fir,-1,sizeof(fir)); memset(las,-1,sizeof(las)); memset(p,-1,sizeof(p)); for(i=0;i<n;i++) { scanf("%d%d",&a,&b); p[a]=1; p[b]=1; fir[a]=b; las[b]=a; if(a==0) f=b; if(b==0) l=a; } if(n%2==0) { //printf("f=%d l=%d\n",f,l); for(i=1;i<n;i+=2) { ans[i]=f; f=fir[f]; } for(i=n-2;i>=0;i-=2) { ans[i]=l; l=las[l]; } for(i=0;i<n;i++) { if(i==0) printf("%d",ans[i]); else printf(" %d",ans[i]); } printf("\n"); } else if(n%2==1) { for(i=1;i<n;i+=2) { ans[i]=f; p[f]=-1; f=fir[f]; } for(i=1;i<N;i++) if(p[i]!=-1) { l=i; break; } while(las[l]!=-1) l=las[l]; for(i=0;i<n;i+=2) { ans[i]=l; l=fir[l]; } for(i=0;i<n;i++) { if(i==0) printf("%d",ans[i]); else printf(" %d",ans[i]); } printf("\n"); } } return 0;}c
ma表示正向前i位数组成的数mod a 后的余数
mp表示1,10,100,1000,10000......mod b后的余数
mb表示倒数i位数字mod b 后的余数
mb[i]=mb[i+1]+(s[i]-'0')*10^x x为从第i位到最后一位字符组成的数的位数
#include<cstdio>#include<cstring>using namespace std;const int N=1000005;char s[N];int a,b,len;int ma[N],mb[N],mp[N];void init(){ int i,p=1; for(i=0;i<len;i++) { p=p%b; mp[i]=p; p*=10; } p=0; for(i=0;i<len;i++) { p=p*10+s[i]-'0'; p=p%a; ma[i]=p; } p=0; for(i=len-1;i>=0;i--) { p=(s[i]-'0')*mp[len-i-1]+p; p=p%b; mb[i]=p; }}int main(){ int i,j; //freopen("in.txt","r",stdin); while(scanf("%s",s)!=EOF) { len=strlen(s); scanf("%d%d",&a,&b); init(); //for(i=0;i<len;i++) printf("%d ",ma[i]);printf("\n"); //for(i=0;i<len;i++) printf("%d ",mp[i]);printf("\n"); //for(i=0;i<len;i++) printf("%d ",mb[i]);printf("\n"); for(i=1;i<len;i++) if(ma[i-1]==0&&mb[i]==0) break; while(s[i]=='0') i++; if(i==len) { printf("NO\n"); } else { printf("YES\n"); //printf("i=%d\n",i); for(j=0;j<i;j++) printf("%c",s[j]); printf("\n"); for(j=i;j<len;j++) printf("%c",s[j]); printf("\n"); } } return 0;}
D
输入a,b,c,d;
统计第一组数和第二组数的因子中有多少2,3
除2,转换成2的因子数减一
乘2/3转换成3的因子减一,2的因子数加一
#include<cstdio>using namespace std;int abs(int a){ if(a>0) return a; return -a;}int main(){ int a,b,c,d,d1,d2,d3,d4,t1,t2,ans; long long ra,rb; //freopen("in.txt","r",stdin); while(scanf("%d%d%d%d",&a,&b,&c,&d)!=EOF) { ra=(long long)a*(long long)b; rb=(long long)c*(long long)d; d1=d2=d3=d4=0; while(ra%2==0) { d1++; ra/=2; } while(ra%3==0) { d2++; ra/=3; } while(rb%2==0) { d3++; rb/=2; } while(rb%3==0) { d4++; rb/=3; } if(ra!=rb) { printf("-1\n"); continue; } ans=abs(d2-d4); ans+=abs(d1+(d2-d4)-d3); printf("%d\n",ans); t1=abs(d2-d4); if(d2>d4) { d1+=t1; while(t1!=0&&a%3==0) { a=a/3*2; t1--; } if(t1>0) { while(t1 !=0&&b%3==0) { t1--; b=b/3*2; } } } else if(d4>d2) { d3+=t1; while(t1!=0&&c%3==0) { c=c/3*2; t1--; } if(t1>0) { while(t1!=0&&d%3==0) { t1--; d=d/3*2; } } } if(d1>d3) { t2=d1-d3; while(t2!=0&&a%2==0) { a/=2; t2--; } if(t2>0) { while(t2!=0&&b%2==0) { t2--; b/=2; } } } else if(d3>d1) { t2=d3-d1; while(t2!=0&&c%2==0) { c/=2; t2--; } if(t2>0) { while(t2!=0&&d%2==0) { t2--; d/=2; } } } printf("%d %d\n",a,b); printf("%d %d\n",c,d); } return 0;}
0 0
- Codeforces Round #279 (Div. 2)
- Codeforces Round #279 (Div. 2)
- Codeforces Round #279 (Div. 2)
- Codeforces Round #279 (Div. 2)
- Codeforces Round #279 (Div. 2)
- Codeforces Round #279 (Div. 2)
- Codeforces Round #279 (Div. 2)
- 【codeforces】Codeforces Round #279 (Div. 2) 题解
- Codeforces Round #279 (Div. 2) D. Chocolate
- Codeforces Round #279 (Div. 2) E
- Codeforces Round #279 (Div. 2) C
- Codeforces Round #279 (Div. 2) F
- Codeforces Round #279 (Div. 2) D
- Codeforces Round #279 (Div. 2)B. Queue
- Codeforces Round #279 (Div. 2) E
- Codeforces Round #279 (Div. 2) B. Queue
- Codeforces Round #279 (Div. 2) D. Chocolate
- Codeforces Round #279 (Div. 2) F
- 2014年11月23日
- MySQL数据库无法远程连接的解决办法
- 正则表达式基础应用(替换replaceAll(regex,str))
- ADB server didn't ACK
- android定时器的3种实现方法
- Codeforces Round #279 (Div. 2)
- 连夜编写的约瑟夫问题
- JAVA的三个开发方向
- MySQL数据库无法远程连接的解决办法
- Android之数据存储
- 【MFC】两个辅助函数AfxMessageBox 和 WinExec
- CSS实战手册_阅读笔记18_IE相关
- Android之指南针学习
- Spring @Transactional