备案 网站首页地址,qq邮箱 wordpress,江西省建设厅政务大厅网站,英文外贸网站建设网站设计方案哎太菜了就做出2个题掉了19分~~
A - Juggling Letters
统计一下每个字母出现的次数#xff0c;由于最后要平均分配到每个数组中那么每个字母出现次数应该是n的倍数
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#includestring
#includeiost…哎太菜了就做出2个题掉了19分~~
A - Juggling Letters
统计一下每个字母出现的次数由于最后要平均分配到每个数组中那么每个字母出现次数应该是n的倍数
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#includestring
#includeiostream
#includealgorithm
using namespace std;
typedef long long ll;
typedef pairint,int pii;
int cnt[30];
int main()
{IO;int T;cinT;while(T--){memset(cnt,0,sizeof cnt);int n;cinn;for(int i1;in;i){string s;cins;for(auto t:s) cnt[t-a];}bool ok1;for(int i0;i26;i)if(cnt[i]%n) {ok0;break;}if(ok) coutYESendl;else coutNOendl;}return 0;
}B - Power Sequence
这题打了个暴力玄学复杂度不知道怎么过的
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#includeiostream
#includealgorithm
using namespace std;
typedef long long ll;
typedef pairint,int pii;
const int N100010;
const ll maxn1e17;
ll a[N];
int main()
{IO;int n;cinn;ll maxa0;for(int i0;in;i) {cina[i];maxamax(maxa,a[i]);}sort(a,an);ll resmaxn;for(int i1;i100000;i){ll cntabs(a[0]-1);ll p1;bool ok1;for(int j1;jn;j){if(pmaxn/i){ok0;break;}pp*i; cntabs(p-a[j]);}if(ok) resmin(res,cnt);}coutresendl;return 0;
}C - Multiples of Length
非常好的思维题没有想到啊。。。 先把1~n-1的数全部变成n的倍数可以这样a[i]a[i]*(n-1)一定是n的倍数。然后将最后一个数变成0第三部将整个数组消为0
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includeiostream
#includealgorithm
using namespace std;
typedef long long ll;
const int N100010;
int n,a[N];
int main()
{cinn;for(int i1;in;i) cina[i];if(n1){cout1 1\n-a[1]\n;cout1 1\n0\n;cout1 1\n0\n;}else{cout1 n-1\n;for(int i1;in-1;i) cout1ll*a[i]*(n-1) ;cout\nn n\n;cout-a[n];cout\n1 n\n;for(int i1;in;i){if(in) cout0 ;else cout-1ll*a[i]*n ;}}return 0;
}考试的时候想的是先把前一半len1变成n的倍数然后把后一半len2变成n的倍数对于加数能否变成n的倍数好像还不确定现在要求aik1len1k2na_ik_1len_1k_2naik1len1k2n即k1len1k2naik_1len_1k_2na_ik1len1k2nai根据扩展欧几里得算法可以求k1len1k2ngcd(len1,n)k_1len_1k_2ngcd(len_1,n)k1len1k2ngcd(len1,n)如果ai%gcd(len1,n)a_i \% gcd(len_1,n)ai%gcd(len1,n)不为0那么无解然后看了一下D发现好像是NIM游戏后来证明是贪心然后就不想看了就睡觉了。 不过看完题解发现如果len1n−1len_1n-1len1n−1那么gcd(len1,n)1gcd(len_1,n)1gcd(len1,n)1就不存在无解情况了。
D - Stoned Game
双方每次都选择当前石子数目最多的一堆即是最优方案。可以用优先队列模拟取石子过程。下面代码参考YeHosea大佬题解 一堆最多的石子超过总数一半先手必胜如果未超过分奇偶讨论即可 whd大佬打表找规律结论与下述代码一样
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includeiostream
#includealgorithm
using namespace std;
typedef long long ll;
const int N110;
int n,a[N];
int main()
{int T;cinT;while(T--){cinn;int maxa0;int s0;for(int i1;in;i){cina[i];sa[i];maxamax(maxa,a[i]);}if(s-maxamaxa||s%21) coutTendl;else coutHLendl;}return 0;
}补题的时候发现这次div2并不是太难只是思维题较多需要静下心来思考。 要加油哦~