String类 + sort 于是就完美AC
挺水的。。看了几篇题解说到高精度一脸蒙。。后来发现字符串直接比较就好了,
string比较:size()不一样时,只是从左到右依次比较每一位,全部相同的比完了,位数多的那一个比较大。但是遇到不相等的,大的那个就大:
size()一样时,从左到右依次比较每一位,谁的大 就大。
所以cmp里面要这么写。感谢string真好用
https://www.luogu.org/problemnew/show/P1781 题目
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstring> 5 #include<string> 6 #include<cmath> 7 #include<set> 8 #include<vector> 9 #include<stack> 10 #include<queue> 11 #include<map> 12 using namespace std; 13 #define ll long long 14 #define se second 15 #define fi first 16 const int INF= 0x3f3f3f3f; 17 const int N=1e5+5; 18 19 int n; 20 string ss; 21 22 struct note 23 { 24 string s; 25 int num; 26 }a[N]; 27 28 bool cmp(note x,note y) 29 { 30 return (x.s.size()>y.s.size() || x.s.size()==y.s.size() && x.s>y.s); 31 } 32 33 int main() 34 { 35 cin>>n; 36 for(int i=1;i<=n;i++) cin>>ss, a[i].s=ss, a[i].num=i; 37 sort(a+1,a+1+n,cmp); 38 cout<<a[1].num<<endl<<a[1].s; 39 }