foj部分题解
2016-05-19 10:16
141 查看
1001 Duplicate Pair
1002 HangOver
1008 Hay Points
1054 阅读顺序
1055 赋值问题
1056 扫雷游戏
1406 凯撒密码
1664 Top K different numbers
#include<cstdio> #include<iostream> #include<string> #include<string.h> using namespace std; bool arr[1000010]; int main() { freopen("xx.in","r",stdin); freopen("xx.out","w",stdout); int n; int i,j; int num; while(scanf("%d",&n)!=EOF) { memset(arr,0,sizeof(arr)); for(i = 0; i < n; i++) { scanf("%d",&num); if(!arr[num]) arr[num] = true; else j = num; } printf("%d\n",j); } return 0; }
1002 HangOver
#include<cstdio> #include<iostream> #include<string> #include<string.h> using namespace std; double num; double sum = 0; double cards = 0; int car(double num) { while(sum < num) { cards++; sum+= 1/(cards+1); } return cards; } int main() { freopen("xx.in","r",stdin); freopen("xx.out","w",stdout); while(cin >> num) { cards = 0; sum = 0; if(num) { cout << car(num)<<" card(s)"<<endl; } } return 0; }
1008 Hay Points
#include<iostream> #include<cstdio> #include<string> #include<map> using namespace std; int main() { freopen("xx.in","r",stdin); freopen("xx.out","w",stdout); map<string,int> mm; int i,j; int m,n; cin >> m >> n; string s; int num; for(i = 0; i < m; i++) { cin >> s >> num; mm[s] = num; } int sum = 0; for(i = 0; i < n; i++) { sum = 0; while(cin >> s && s[0] != '.') { sum+=mm[s]; } cout << sum<<endl; } return 0; }
1054 阅读顺序
#include<iostream> #include<cstdio> #include<string> using namespace std; int main() { // freopen("xx.in","r",stdin); // freopen("xx.out","w",stdout); int n; scanf("%d\n",&n); string s; while(n--) { getline(cin,s); for(int i = s.length()-1; i >=0 ; i--) cout << s[i]; cout <<endl; } return 0; }
1055 赋值问题
#include<cstdio> #include<iostream> #include<string> #include<string.h> using namespace std; bool arr[10010]; int main() { // freopen("xx.in","r",stdin); // freopen("xx.out","w",stdout); int i,j; int n; while(scanf("%d",&n) && n!=-1) { getchar(); memset(arr,false,sizeof(arr)); arr['a'] = true; char c1,c2; for(i = 0; i < n; i++) { scanf("%c=%c",&c1,&c2); arr[c1] = arr[c2]; getchar(); } bool flag = false; int num; for(i = 'a'; i <= 'z';i++) { if(arr[i]) { flag= true; num = i; printf("%c",i); break; } } for(i = num+1; i <='z';i++) { if(arr[i]) { printf(" %c",i); } } if(!flag) cout << "none"; cout <<endl; } return 0; }
1056 扫雷游戏
#include<cstdio> #include<iostream> #include<string> #include<string.h> using namespace std; int step[8][2] = {{-1,-1},{0,-1},{1,-1},{-1,0},{1,0},{-1,1},{0,1},{1,1}}; char arr[110][110] = {'0'}; int main() { int i,j; int m,n; int count = 0; while(scanf("%d %d",&m,&n)!=EOF) { memset(arr,'0',sizeof(arr)); if(m == 0 && n == 0) break; getchar(); for(i = 1; i <= m; i++) { for(j = 1; j <= n; j++) scanf("%c",&arr[i][j]); getchar(); } for(i = 1; i <= m; i++) for(j = 1; j <= n; j++) { if(arr[i][j] == '.') { arr[i][j] = '0'; for(int k = 0; k <8;k++) { if(arr[i+step[k][0]][j+step[k][1]] == '*') count++; } arr[i][j]+=count; count = 0; } } for(i = 1; i <= m; i++) { for(j = 1; j <= n; j++) printf("%c",arr[i][j]); printf("\n"); } printf("\n"); } return 0; }
1406 凯撒密码
#include<iostream> #include<cstdio> #include<string> #include<cctype> using namespace std; int main() { string s; while(getline(cin,s)) { for(int i = 0; i < s.length(); i++) { if(isalpha(s[i]) && (( s[i] <= 'c' && s[i]>='a' ) || (s[i] <= 'C'&& s[i] >= 'A'))) printf("%c",(s[i]-3)+26); else if(isalpha(s[i])) printf("%c",s[i]-3); else printf("%c",s[i]); } cout <<endl; } return 0; }
1664 Top K different numbers
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; bool compare(const int &a,const int &b) { return a>b; } int arr[10010]; int arr2[10010]; int main() { freopen("xx.in","r",stdin); freopen("xx.out","w",stdout); int n,k; while(cin >> n >> k) { memset(arr,0,sizeof(arr)); memset(arr2,0,sizeof(arr2)); int i,j; int num; for(i = 0; i < n; i++) cin >> arr[i]; sort(arr,arr+n,compare); arr2[0]=arr[0]; j=0; for(i = 1; i < n;i++) { if(arr[i]!=arr2[j]) { arr2[++j] = arr[i]; } if(j>=k-1) break; } if(j < k-1) cout <<"-1"<<endl; else { sort(arr2,arr2+k); cout <<arr2[0]; for(i = 1; i <k ;i++) cout << " "<<arr2[i]; cout <<endl; } } return 0; }
相关文章推荐
- 三种内存测试软件的使用说明
- 详解ZXing-core生成二维码的方法并解析
- Net::Telnet
- Latex 笔记
- iOS应用架构谈 本地持久化方案及动态部署
- rpc的go 和 call
- nodejs
- 文件目录管理
- arm-linux-gcc-4.3.2安装步骤
- iOS学习之——#import与@class的区别
- 微信群发图文消息invalid media_id hint,thumb_media_id怎么获取
- javaweb学习总结(三十九)——数据库连接池
- GCC的struct大小
- native 和 H5 的交互
- iOS应用架构谈 网络层设计方案
- JS、CSS以及img对DOMContentLoaded事件的影响
- LeetCode:Merge Sorted Array
- Django中静态文件设置方法
- 关于Ubuntu 系统 常用操作命令以备不时之需~~
- iOS 开发- 键盘类型