杭电-模拟-1280-1035
来源:互联网 发布:ubuntu recovery 联网 编辑:程序博客网 时间:2024/06/05 08:12
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1280
最开始我的思路是错的,我先把数据从小到大排序,例如 1234,先3+4,再2+4,2+3。。。但这只适用于连续的自然数,如果是
2 3 4 6 7 9 ,如果输出四个,就会按序输出16,15,13,14
错误代码
#include <iostream>#include<algorithm>#include<vector>using namespace std;int main(){ int m,n,i,j; int s; bool flag; vector<int> vec; while(scanf("%d%d",&m,&n)!=EOF) { vec.clear(); while(m--) { cin>>s; vec.push_back(s); } sort(vec.begin(),vec.end()); flag=false; for(i=vec.size()-2;i>=0;i--) { for(j=vec.size()-1;j>i;j--) { if(n-->0) { if(!flag) flag=true; else cout<<" "; cout<<vec[j]+vec[i]; } } } cout<<endl; } return 0; }后来我先将所有的和算出来 存在容器中 在用 sort 排序,用 reverse 反排序
#include <iostream>#include<algorithm>#include<vector>using namespace std;int main(){ int s,m,n,i,j,k; vector<int> vec1; vector<int> vec; bool flag; while(scanf("%d%d",&m,&n)!=EOF) { vec.clear(); vec1.clear(); while(m--) { cin>>s; vec1.push_back(s); } for(i=0;i<vec1.size();i++) { for(j=i+1;j<vec1.size();j++) { vec.push_back(vec1[i]+vec1[j]); } } sort(vec.begin(),vec.end()); reverse(vec.begin(),vec.end());//也可以不要 flag=false; for(k=0;k<n;k++) //将此处改成 for(k=vec.size()-1;<span style="font-family: Arial, Helvetica, sans-serif;">k>vec.size()-1-n;k--)</span> { if(!flag) flag=true; else cout<<" "; cout<<vec[k]; } cout<<endl; } return 0; }
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1035
#include <iostream>#include <cstdio>using namespace std;int main(){ char s[10][10]; int r,c,n,k,i,j; bool flag; while(cin>>r>>c>>n&&r!=0||c!=0) { for(i=0;i<r;i++) { for(j=0;j<c;j++) { cin>>s[i][j]; } } k=0; flag=false; i=0;j=n-1; while(i<r&&j<c&&i>=0&&j>=0) { switch(s[i][j]) { case 'N':s[i][j]=k++; //k 记录所走的步数,赋值给s[i][j],一旦循环再次回到这个点,s[i][j]已经变成了整数,则执行 default语句 i--;break; case 'S':s[i][j]=k++; i++;break; case 'E':s[i][j]=k++; j++;break; case 'W':s[i][j]=k++; j--;break; default:k=k-s[i][j];// 循环的步数 flag=true; } if(flag) break; //一旦循环了一次就跳出while循环 } if(flag) printf("%d step(s) before a loop of %d step(s)\n",s[i][j],k);// s[i][j]记录未进入循环前的步数 else printf("%d step(s) to exit\n",k); } return 0;}
0 0
- 杭电-模拟-1280-1035
- 杭电 ACM 1035 简单模拟题
- 杭电1276 STL模拟
- ACM-杭电 HDOJ-1216 模拟,链表
- 杭电字符串之1106(模拟)
- 杭电-1034Candy Sharing Game(模拟)
- 杭电 hdu 5163 Taking Bus【模拟】
- 【杭电oj】2074 - 叠筐(模拟)
- 杭电acm 1283 模拟计算机
- 杭电1998--奇数阶魔方(模拟)
- 2015杭电新生赛1003玩骰子【大型模拟】
- Flipper(杭电3328)(模拟栈)
- 算法:模拟法二(杭电ACM4816)
- 【杭电oj】1443 - Joseph(模拟,打表)
- 杭电1034(模拟法) 之 Candy Sharing Game
- 杭电HDU 1008 简单模拟AC代码
- 杭电1278漂亮面料的设计(模拟题)
- 杭电1280
- iOS开发之初:自定义tabBar与tabBarController
- Android Studio 常用的快捷键
- 简单通讯录
- 给 Web 开发者的 25 款最有用的 AngularJS 工具
- 每天进步一点点——ubuntu 13.10中安装google的gtest库
- 杭电-模拟-1280-1035
- Android 防止OOM的一种方法
- Java 中 String 类的常用方法 Ⅰ
- jquery AJAX 实现文件上传
- 【二叉树】根据后序表达式建立表达式树
- 【最小生成树】QS Network ZOJ 1586
- iOS 获取当前正在显示的ViewController
- 模板的概念
- C++ vector容器类型