uva10905同一思路的两种做法,前一种WA,后一种AC
2013-11-14 20:06
573 查看
这道题应该算一道普通的排序吧,实际上就是另一种形式地比大小,自己最开始是用int型存,后来觉着不行,改用long,结果还是WA,这是第一个程序。
第二个程序是改用string处理,确实比int方便很多,在运算符重载那里体现就非常明显。
这个题目用到了之前总结过的结构体加入优先级队列需要重载运算符,之所以写成结构体是因为我不知道直接将string加入优先级队列时怎么写比较函数。。。⊙﹏⊙b
通过这个题目充分说明你不知道测试数据到底有多么大,所以还是用string来处理大数据比较好。
转载请注明出处,谢谢!
原文地址:http://blog.csdn.net/monkeyduck
第一个程序
第二个程序,AC代码
第二个程序是改用string处理,确实比int方便很多,在运算符重载那里体现就非常明显。
这个题目用到了之前总结过的结构体加入优先级队列需要重载运算符,之所以写成结构体是因为我不知道直接将string加入优先级队列时怎么写比较函数。。。⊙﹏⊙b
通过这个题目充分说明你不知道测试数据到底有多么大,所以还是用string来处理大数据比较好。
转载请注明出处,谢谢!
原文地址:http://blog.csdn.net/monkeyduck
第一个程序
#include<iostream> #include<cmath> #include<queue> using namespace std; struct Node { int data,size; bool operator < (const Node& a) const { if (size==a.size) return data<a.data; long long t1=(data*pow(10,double(a.size))+a.data); long long t2=(a.data*pow(10,double(size))+data); return t1<t2; } }; int n; int main () { while (cin>>n&&n) { priority_queue<Node> que; for (int i=0;i<n;i++) { int num,flag=0; cin>>num; Node node; node.data=num; while (num) { num=num/10; flag++; } node.size=flag; que.push(node); } while(!que.empty()) { cout<<que.top().data; que.pop(); } cout<<endl; } return 0; }
第二个程序,AC代码
#include<iostream> #include<queue> #include<string> using namespace std; struct Node { string str; bool operator < (const Node& a) const { return str+a.str<a.str+str; } }; priority_queue<Node> que; int n; int main() { while (cin>>n&&n) { for (int i=0;i<n;i++) { Node node; cin>>node.str; que.push(node); } while (!que.empty()) { cout<<que.top().str; que.pop(); } cout<<endl; } return 0; }
相关文章推荐
- uva10905同一思路的两种做法,前一种WA,后一种AC
- 移动端Web适配的两种做法思路总结
- Leetcode: Longest Substring with At Most K Distinct Characters && Summary: Window做法两种思路总结
- 进制转换的一种思路两种实现方法
- ACM水题-AB串(AC,分情况,要小心陷阱,两种思路)
- POJ-5353-Fence Repair(哈夫曼问题->贪心(一种解法两种做法))
- UVA 1450 Airport (二分)PS:两种思路的改错,想AC就看我!!!
- C++如何调用DLL呢,有两种,一种是静态,另外一种是动态,即通过调用windowsAPI 来加载和卸载DLL,具体思路:
- 解题报告:POJ 2965 The Pilots Brothers' refrigerator 两种做法
- 19:用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到则只算一种,一共有多少种染色:
- hdoj 2020 绝对值排序——两种做法
- GDI中获取字符串精确绘制范围的两种做法比较
- (转)Sql Server 保留几位小数的两种做法
- 快速构建基于代码级性能测试方法的一种思路和简单实现
- Letter Combinations of a Phone Number [leetcode]谈谈循环解法的两种思路
- 一表格的,一个字段中存着两种时间格式的数据,怎么转换为一种
- git如何实现增量上线 实现前端资源增量式更新的一种思路
- 换一种思路 考虑文本框onchange事件失效的BUG
- 关于刷新重复提交的一种解决思路
- extjs实现分页后台处理很快捷的一种做法