CF传送门
洛谷传送门
解题思路
贪心:若序列长度为偶数,则每人拿一半,若为奇数,则所有奇数序列的中间元素从大到小排序,两人依次拿,剩下的两边的也是一人一半。
证明(感性):若对方想要抢走你那一半的元素,说明你那一半的元素肯定更大,你不可能让对面抢去,所以每个人都守着自己这一半的元素。
真不明白为啥紫题。
AC代码
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<iomanip> 5 #include<cmath> 6 #include<algorithm> 7 using namespace std; 8 int n,m,ans1,ans2,cnt,x,a[10005]; 9 int main(){ 10 cin>>n; 11 for(int i=1;i<=n;i++){ 12 cin>>m; 13 for(int j=1;j<=m/2;j++){ 14 cin>>x; 15 ans1+=x; 16 } 17 if(m&1){ 18 cin>>a[++cnt]; 19 } 20 for(int j=1;j<=m/2;j++){ 21 cin>>x; 22 ans2+=x; 23 } 24 } 25 sort(a+1,a+cnt+1); 26 for(int i=cnt;i>=1;i--){ 27 if((cnt-i)&1) ans2+=a[i]; 28 else ans1+=a[i]; 29 } 30 cout<<ans1<<" "<<ans2; 31 return 0; 32 }