题解
事实1.两个数合并后的数一定是偶数
事实2.如果没有发生奇数和偶数合并,那么最终的结果一定是所有数的和
事实3.每发生一次奇数和偶数合并,最后的结果会减一
总结
综上所述,Masha会尽量选择同奇或同偶合并,但在有同奇的情况下,会优先选择同奇,因为合并会产生偶数,且Olya需要用到奇数与偶数合并
代码
#include<bits/stdc++.h>
using namespace std;
long long sum[100005]={0},a[100005]={0};
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(int i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]+a[i];}
cout<<a[1];
long long js=a[1]%2;
for(int i=2;i<=n;i++)
{
js+=a[i]%2;
cout<<" ";
if(js%3%2)cout<<sum[i]-js/3-1;
else cout<<sum[i]-js/3;
}
puts("");
}
return 0;
}
标签:同奇,Training,奇数,int,sum,合并,偶数,Olympiad,Before
From: https://www.cnblogs.com/pure4knowledge/p/17937458