uva10905同一思路的两种做法,前一种WA,后一种AC
来源:互联网 发布:数控车圆球编程实例 编辑:程序博客网 时间:2024/05/17 08:24
这道题应该算一道普通的排序吧,实际上就是另一种形式地比大小,自己最开始是用int型存,后来觉着不行,改用long,结果还是WA,这是第一个程序。
第二个程序是改用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
- 进制转换的一种思路两种实现方法
- 截取浮点数小数点后指定位数的一种做法
- 一种 View 缓存的做法
- 系统分析的一种思路
- 移植的一种思路
- 二叉树的遍历(前序 中序 后序)和已知两种遍历顺序求另外一种遍历顺序(含实例)
- 一种循环注入的思路
- Flex模块化的一种思路
- 一种计算留存的思路
- HDOJ4602【一种巧妙的思路】
- 一种异步保存的思路
- 学习知识的一种思路
- 混音的一种思路
- 一种简化 Redux 的思路
- 安卓换肤的一种实现思路
- 水晶报表页统计的一种做法
- 貌似Cookie 欺骗的一种古怪做法
- sqlite3
- 数据库发展史
- Delphi 中的MD5实现方法(转)
- 百度词库格式分析
- 函数参数传递详解
- uva10905同一思路的两种做法,前一种WA,后一种AC
- Java中的位运算【转】
- 我的设计印象
- php字符串简介
- Git原理以及常用命令介绍
- KMP算法
- Web开发错误及解决办法
- 经典算法和OJ网站(开发者必备)
- 后期修行