湖南建设监理协会网站,开发游戏用什么软件,pc 响应式网站模板,科技类网站源码TESyyds#xff0c;本来以为又要3:1#xff0c;结果创造历史#xff01;#xff01;#xff01;非常激动啊好久好久没看过让二追三了。 无缝衔接回旋踢#xff0c;qa插眼we。送给雷达哥
A - Fourtune Cookies
签到题
#define IO ios::sync_with_stdio(false);cin.tie(…TESyyds本来以为又要3:1结果创造历史非常激动啊好久好久没看过让二追三了。 无缝衔接回旋踢qa插眼we。送给雷达哥
A - Fourtune Cookies
签到题
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includeset
#includemap
#includecmath
#includequeue
#includestring
#includevector
#includecstdio
#includecstring
#includeiostream
#includealgorithm
#includeunordered_map
using namespace std;
typedef long long ll;
typedef pairint,int pii;
const int mod1e97;
int main()
{IO;int T1;//cinT;for(int ca1;caT;ca){int a[4];for(int i0;i4;i) cina[i];sort(a,a4);if(a[0]a[1]a[2]a[3]||a[0]a[2]a[1]a[3]||a[0]a[3]a[1]a[2])coutYes\n;elsecoutNo\n;}return 0;
}
B - MAX-min
做的时候感觉和求gcd的过程有点像于是直接猜结论求序列gcd直接就过了
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includeset
#includemap
#includecmath
#includequeue
#includestring
#includevector
#includecstdio
#includecstring
#includeiostream
#includealgorithm
#includeunordered_map
using namespace std;
typedef long long ll;
typedef pairint,int pii;
const int mod1e97;
const int N100010;
int a[N];
int n;
int gcd(int a,int b)
{return b?gcd(b,a%b):a;
}
int main()
{IO;int T1;//cinT;for(int ca1;caT;ca){// multisetint s;// cinn;// for(int i1;in;i) // {// int a;// cina;// s.insert(a);// }// while(1)// {// auto bs.begin(),es.end();// e--;// int x*b,y*e;// if(xy) break;// s.erase(e);// s.insert(y-x);// }// cout*s.begin()\n;cinn;for(int i1;in;i) cina[i];int da[1];for(int i2;in;i) dgcd(d,a[i]);coutd\n;}return 0;
}
C - Camels and Bridge
大佬题解 刚开始看了半天题不知道从何入手然后发现N非常小于是考虑枚举排列。但是之后就不会做了。
看了题解之后发现自己陷入了一个误区——桥的排序本题每部分桥都是一个限制条件而并不用关系桥的顺序。
排序定后现在要求1~n的最小距离考虑设计dp 状态表示fif_ifi表示1→i1\to i1→i的最小距离 状态转移fimax(fi,fjlen)f_imax(f_i,f_jlen)fimax(fi,fjlen)对于当前考虑的骆驼和之前的骆驼满足所有桥的条件因而要考虑之前的所有骆驼取距离上限。 len可以预处理前缀然后二分体重快速求得详细看代码
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includeset
#includemap
#includecmath
#includequeue
#includestring
#includevector
#includecstdio
#includerandom
#includecstring
#includeiostream
#includealgorithm
#includeunordered_map
#includeunordered_set
#define v first
#define l second
using namespace std;
mt19937 rnd(233);
typedef long long ll;
typedef pairint,int pii;
const int mod1e97;
const int N100010;
int w[12];
pii bdg[N];
int n,m;
int a[12];
ll f[12],s[12];
int len[N],b[N];
int main()
{IO;int T1;//cinT;for(int ca1;caT;ca){cinnm;int mx0;for(int i1;in;i) {cinw[i];mxmax(mx,w[i]);}for(int i1;im;i) cinbdg[i].lbdg[i].v;sort(bdg1,bdg1m);if(mxbdg[1].v) {cout-1\n;continue;}for(int i1;in;i) a[i]i;for(int i1;im;i) len[i]max(len[i-1],bdg[i].l);for(int i1;im;i) b[i]bdg[i].v;ll res1e15;do{memset(f,0,sizeof f);for(int i1;in;i) s[i]s[i-1]w[a[i]];for(int i2;in;i)for(int j1;ji;j){int tmps[i]-s[j-1];int plower_bound(b1,b1m,tmp)-b-1;f[i]max(f[i],f[j]len[p]);}resmin(res,f[n]);}while(next_permutation(a1,a1n));coutres\n;}return 0;
}总结由于自己显然桥的顺序这个误区一直不知道从何入手没能够充分挖掘题目的条件进一步简化已知条件。
D - Let’s Play Nim
大佬题解直接copy大佬的题解写的非常非常非常清晰一下子就明白了难道这就是考智商的题吗
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includeset
#includemap
#includecmath
#includequeue
#includestring
#includevector
#includecstdio
#includerandom
#includecstring
#includeiostream
#includealgorithm
#includeunordered_map
#includeunordered_set
using namespace std;
mt19937 rnd(233);
typedef long long ll;
typedef pairint,int pii;
const int mod1e97;
const int N100010;
int n;
mapint,int mp;
int main()
{IO;int T1;cinT;for(int ca1;caT;ca){cinn;mp.clear();for(int i1;in;i){int a;cina;mp[a];}if(n1)coutSecond\n;else{bool ok0;for(auto t:mp)if(t.second1) ok1;if(ok) coutFirst\n;else coutSecond\n;}}return 0;
}总结大佬题解的思路非常清晰首先由于n的奇偶性会影响最终NIM游戏的先手顺序于是就分奇偶然后考虑先手如何能让自己在最终的NIM的游戏中获得胜利一步步趋近答案值得学习。
要加油哦~