一些水题
来源:互联网 发布:移动网络转换电信 编辑:程序博客网 时间:2024/06/06 19:59
http://acm.hrbeu.edu.cn/index.php?act=tijie
谁是中间的那个
#include<iostream>#include<algorithm>using namespace std;int a[100008];int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",&a[i]); sort(a+1,a+n+1); printf("%d\n",a[(n+1)/2]); return 0;}
一问一答
#include<iostream>#include<algorithm>#include<cstdio>using namespace std;int num[120000];int main(){ //freopen("d:\\test.txt","r",stdin); int n,m; char str[10]; scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",&num[i]); scanf("%s",str); sort(num+1,num+n+1); scanf("%d",&m); for(int j,i=1;i<=m;++i) { scanf("%d",&j); printf("%d\n",num[j]); } return 0;}
487 - 3279
#include<iostream>#include<cstdio>#include<algorithm>#include<string.h>#include<map>using namespace std;map<char,int>m;void init(){ m['0']=0; m['1']=1; m['2']=2; m['3']=3; m['4']=4; m['5']=5; m['6']=6; m['7']=7; m['8']=8; m['9']=9; m['A']=m['B']=m['C']=2; m['D']=m['E']=m['F']=3; m['G']=m['H']=m['I']=4; m['J']=m['K']=m['L']=5; m['M']=m['N']=m['O']=6; m['P']=m['R']=m['S']=7; m['T']=m['U']=m['V']=8; m['W']=m['X']=m['Y']=9;}int main(){ int n,i,j,t,*num; char s[256]; init(); //freopen("d:\\test.txt","r",stdin); scanf("%d",&n); num=new int[n]; getchar(); for(i=0;i<n;++i) { scanf("%s",s); getchar(); t=0; for(j=0;s[j];++j) { if(s[j]=='-') continue; t=t*10+m[s[j]]; } num[i]=t; } sort(num,num+n); int judge=0; for(i=0;i<n;++i) { j=i; while(i+1<n && num[i]==num[i+1]) i++; if(i!=j) { printf("%03d-%04d %d\n",num[i]/10000,num[i]%10000,i-j+1); judge=1; } } delete []num; if(judge==0) printf("No duplicates.\n"); return 0;}
#include<iostream>#include<cstring>#include<cstdio>#define INF 0xffffffusing namespace std;char str[200][200];int value[200];int main(){ //freopen("d:\\test.txt","r",stdin); int n,m,p; memset(value,0,sizeof(value)); scanf("%d%d",&m,&n); value[0]=INF; for(int i=1;i<=n;++i) { scanf("%s",str[i]); for(int j=0;j<n;++j) for(int k=j+1;k<m;++k) if(str[i][j]>str[i][k]) value[i]++; } p=0; for(int i=1;i<=n;++i) { for(int j=1;j<=n;++j) if(value[j]<value[p]) p=j; printf("%s\n",str[p]); value[p]=INF; } return 0;}
代码2
#include<iostream>#include<cstdio>#include<string>#include<algorithm>using namespace std;int cnt[108];struct node{ string s; int cnt;}a[108];bool cmp(node a,node b){ return a.cnt<b.cnt;}int main(){ int i,j,k,n,m; //freopen("d:\\test.txt","r",stdin); cin>>n>>m; for(i=0;i<m;++i) { cin>>a[i].s; a[i].cnt=0; for(j=0;j<n;++j) for(k=j+1;k<n;++k) if(a[i].s[j]>a[i].s[k]) a[i].cnt++; } stable_sort(a,a+m,cmp); for(i=0;i<m;++i) cout<<a[i].s<<endl; return 0;}
统计频率 map二叉查找树
#include<iostream>#include<map>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char str[50];int cnt=0;map<string,int> counter;map<string,int>::iterator it;int main(){ //freopen("d:\\test.txt","r",stdin); while(gets(str)!=NULL) { counter[str]++; cnt++; } cout.setf(ios::fixed); cout.precision(4); for(it=counter.begin();it!=counter.end();it++) { double per=100*it->second*1.0/cnt; cout<<it->first<<" "<<per<<endl; } return 0;}
开锁 这题有点问题
#include<iostream>#include<cstdio>#include<fstream>using namespace std;int main(){ //fstream cin("d:\\test.txt"); int n1,n2,n3,n4; while(cin>>n1>>n2>>n3>>n4 && (n1+n2+n3+n4)) { int d=720; if(n1<n2) d+=(40+n1-n2)*9; else d+=(n1-n2)*9; d+=360; if(n2<n3) d+=(n3-n2)*9; else d+=(40+n3-n2)*9; if(n3<n4) d+=(40+n3-n4)*9; else d+=(n3-n4)*9; cout<<d<<endl; } return 0;}
猜数 poj-2328 这题的范围是0~11 无语,copy题目也要认真点
#include<stdio.h>#include<string.h>const int maxn=100;int n, left, right;char str[maxn];int main(){ //freopen("d:\\test.txt","r",stdin); while(scanf("%d", &n)!=EOF && n) { getchar(); left=0, right=11; while(1) { gets(str); if(strstr(str,"right on")) break; else if(strstr(str,"too low")) { if(n>left) left=n; } else { if(n<right) right=n; } scanf("%d",&n); getchar(); } if(left<n && n<right) puts("xiaoz may be honest"); else puts("xiaoz is dishonest"); } return 0;}
欧几里得游戏
两个数a和b,总会出现的一个局面是b,a%b,这是必然的。
如果a>=b&&a<2*b,那么只有一种情况,直接到b,a%b。否则有多种情况。
对于对于a/b==1这种局面,只可能到b,a%b,没有选择。
而a/b>=2的话,先手可以选择由谁面对b,a%b这样的局势
显然选手足够聪明b,a%b谁必胜必败已经清楚,先手在a/b>=2的局面必胜
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int main(){ //freopen("d:\\test.txt","r",stdin); int a,b; while(scanf("%d%d",&a,&b)!=EOF && a+b) { if(a<b) swap(a,b); bool flag=true; while(1) { if(b==0 || a%b==0 || a/b>=2) break; int t=a; a=b; b=t-a; flag=!flag; } if(flag) printf("Stan wins\n"); else printf("Ollie wins\n"); } return 0;}
求最大公约数
#include<stdio.h>#include<stdlib.h>long long gcd(long long a,long long b){ return b==0?a:gcd(b,a%b);}int main(){ long long a,b; while(scanf("%lld%lld",&a,&b)!=EOF) printf("%lld\n",gcd(a,b)); return 0;}
欧拉函数
#include<stdio.h>#include<stdlib.h>long long phi(long long a){ long long t=a,i; for(i=2;i*i<=a;++i) if(a%i==0) { while(!(a%i)) a/=i; t=t/i*(i-1); } if(a!=1) t=t/a*(a-1); return t;}int main(){ long long a; while(scanf("%lld",&a)!=EOF) printf("%lld\n",phi(a)); return 0;}
无脑总统的火星国
#include<stdio.h>#include<string.h>int map[105][105],n,m,many,t,can[105];int dfs(int x){ int i; can[x]=1; for(i=1;i<=n;++i) if(map[x][i] && !can[i]) dfs(i); return 1;}int main(){ int i,j; while(scanf("%d",&n)!=EOF) { many=0; memset(can,0,sizeof(can)); memset(map,0,sizeof(map)); for(i=1;i<=n;++i) { scanf("%d",&m); for(j=1;j<=m;++j) { scanf("%d",&t); map[i][t]=1; map[t][i]=1; } } for(i=1;i<=n;++i) if(!can[i]) many=many+dfs(i); printf("%d\n",many); } return 0;}
占武卖花
#include<stdio.h>long long f[32];int main(){ int i; f[0]=1; for(i=1;i<=30;++i) f[i]=f[i-1]*3; int n; while(scanf("%d",&n) && n) { long long ans=((long long)1<<2*n)-((long long)1<<(n+1))+f[n]+2; ans+=(n&1)?-1:1; printf("%lld\n",ans>>2); } return 0;}
竞赛游戏
#include<iostream>#include<cmath>#include<algorithm>using namespace std;int s[55];int main(){ int t,n,sum; while(!cin.eof() && cin>>n) { sum=0; for(int i=0;i<n;++i) { cin>>t; sum^=t; } if(sum==0) cout<<"No"<<endl; else cout<<"Yes"<<endl; } return 0;}
取石子游戏
#include<iostream>#include<cmath>#include<cstdlib>using namespace std;int main(){ int a,b,c,k; while(!cin.eof() && cin>>a>>b) { if(a>b) { int t=a; a=b; b=t; } c=b-a; k=(int)((1.0+sqrt(5.0))/2.0*c); if(k==a) cout<<0<<endl; else cout<<1<<endl; } return 0;}
一个新的取石子游戏
#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int a[1000];int main(){ int n; bool flag=0; while(cin>>n && n) { for(int i=0;i<n;++i) cin>>a[i]; sort(a,a+n); if(n%2==0) { flag=true; for(int i=0;i<n && flag;i+=2) if(a[i]!=a[i+1]) flag=false; if(flag) cout<<0<<endl; else cout<<1<<endl; } else cout<<1<<endl; } return 0;}
- 一些水题
- 近日一些水题
- 一些水题总结
- 一些Codeforces的水题
- 一些题
- [ 一些题 ]
- 一些题
- hdoj上的一些水题
- UVA490水题的一些细节
- 最近水的一些模板题
- 【一些题】一些重要函数的实现
- 一些笔试题
- 一些笔试题
- 一些智力测试题
- java一些题
- 一些数据推理题
- 一些变态笔试题
- 一些笔试题
- C++ 类静态成员变量存取出错 undefined reference to 'xxx'
- 如何在不提升用户权限的情况下,使普通用户执行sp_OACreate存储过程
- undefined reference to 'sin'
- linux中安装gcc和g++
- 6 个优秀的开源 OCR 光学字符识别工具
- 一些水题
- 交换两数组中的元素使得二者和差最小
- 浅谈WP7 本地数据库的选择
- C++使用static的错误:无法解析的外部符号、“static”不应在文件范围内定义的成员函数上使用 .
- 网站下载精品电子书分享 – 《JavaScript Enlightenment.PDF》
- 程序员的奋斗史(十七)——父母
- Shark:强大的开源C++机器学习库
- 理解 Linux 的处理器负载均值
- Linux下编译安装mysql-5.0.45.tar.gz