TESyyds,本来以为又要3:1,结果创造历史!!!非常激动啊好久好久没看过让二追三了。
无缝衔接回旋踢,qa插眼we。送给雷达哥

A - Fourtune Cookies

签到题

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int mod=1e9+7;
int main()
{IO;int T=1;//cin>>T;for(int ca=1;ca<=T;ca++){int a[4];for(int i=0;i<4;i++) cin>>a[i];sort(a,a+4);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])cout<<"Yes\n";elsecout<<"No\n";}return 0;
}

B - MAX-=min

做的时候感觉和求gcd的过程有点像,于是直接猜结论求序列gcd直接就过了

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int mod=1e9+7;
const int N=100010;
int a[N];
int n;
int gcd(int a,int b)
{return b?gcd(b,a%b):a;
}
int main()
{IO;int T=1;//cin>>T;for(int ca=1;ca<=T;ca++){// multiset<int> s;// cin>>n;// for(int i=1;i<=n;i++) // {//     int a;//     cin>>a;//     s.insert(a);// }// while(1)// {//     auto b=s.begin(),e=s.end();//     e--;//     int x=*b,y=*e;//     if(x==y) break;//     s.erase(e);//     s.insert(y-x);// }// cout<<*s.begin()<<'\n';cin>>n;for(int i=1;i<=n;i++) cin>>a[i];int d=a[1];for(int i=2;i<=n;i++) d=gcd(d,a[i]);cout<<d<<'\n';}return 0;
}

C - Camels and Bridge

大佬题解
刚开始看了半天题,不知道从何入手,然后发现N非常小于是考虑枚举排列。但是之后就不会做了。

看了题解之后发现自己陷入了一个误区——桥的排序,本题每部分桥都是一个限制条件,而并不用关系桥的顺序。

排序定后现在要求1~n的最小距离,考虑设计dp
状态表示:fif_ifi​表示1→i1\to i1→i的最小距离
状态转移:fi=max(fi,fj+len)f_i=max(f_i,f_j+len)fi​=max(fi​,fj​+len),对于当前考虑的骆驼和之前的骆驼满足所有桥的条件,因而要考虑之前的所有骆驼取距离上限。
len可以预处理前缀然后二分体重快速求得详细看代码

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<string>
#include<vector>
#include<cstdio>
#include<random>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<unordered_set>
#define v first
#define l second
using namespace std;
mt19937 rnd(233);
typedef long long ll;
typedef pair<int,int> pii;
const int mod=1e9+7;
const int N=100010;
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 T=1;//cin>>T;for(int ca=1;ca<=T;ca++){cin>>n>>m;int mx=0;for(int i=1;i<=n;i++) {cin>>w[i];mx=max(mx,w[i]);}for(int i=1;i<=m;i++) cin>>bdg[i].l>>bdg[i].v;sort(bdg+1,bdg+1+m);if(mx>bdg[1].v) {cout<<-1<<'\n';continue;}for(int i=1;i<=n;i++) a[i]=i;for(int i=1;i<=m;i++) len[i]=max(len[i-1],bdg[i].l);for(int i=1;i<=m;i++) b[i]=bdg[i].v;ll res=1e15;do{memset(f,0,sizeof f);for(int i=1;i<=n;i++) s[i]=s[i-1]+w[a[i]];for(int i=2;i<=n;i++)for(int j=1;j<i;j++){int tmp=s[i]-s[j-1];int p=lower_bound(b+1,b+1+m,tmp)-b-1;f[i]=max(f[i],f[j]+len[p]);}res=min(res,f[n]);}while(next_permutation(a+1,a+1+n));cout<<res<<'\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)
#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<string>
#include<vector>
#include<cstdio>
#include<random>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<unordered_set>
using namespace std;
mt19937 rnd(233);
typedef long long ll;
typedef pair<int,int> pii;
const int mod=1e9+7;
const int N=100010;
int n;
map<int,int> mp;
int main()
{IO;int T=1;cin>>T;for(int ca=1;ca<=T;ca++){cin>>n;mp.clear();for(int i=1;i<=n;i++){int a;cin>>a;mp[a]++;}if(n&1)cout<<"Second\n";else{bool ok=0;for(auto t:mp)if(t.second&1) ok=1;if(ok) cout<<"First\n";else cout<<"Second\n";}}return 0;
}

总结:大佬题解的思路非常清晰,首先由于n的奇偶性会影响最终NIM游戏的先手顺序于是就分奇偶,然后考虑先手如何能让自己在最终的NIM的游戏中获得胜利,一步步趋近答案值得学习。

要加油哦~

AtCoder Regular Contest 105 部分 NIM游戏相关推荐

  1. AtCoder Regular Contest 105 C - Camels and Bridge

    题目链接 题目描述 有n只骆驼过m桥,第i只骆驼负重wiw_iwi​,第i座桥的长度为lil_ili​,最大负重为viv_ivi​,问骆驼队伍长度最短为多少可以通过所有的桥. 思路 n的数据范围很小, ...

  2. AtCoder Regular Contest 065

    AtCoder Regular Contest 065 C - Daydream Score : 300300300 points 倒着来就行了,正着来会产生歧义匹配,dreamer,dreamdre ...

  3. AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,你要将其分成四份,让这四份中和的最大值−-−最小值最小,输出这个最小值. n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2 ...

  4. AtCoder Regular Contest 100 E - Or Plus Max Sos dp

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为2n2^n2n的数组,让你对于所有的1≤k≤2n−11\le k\le 2^n-11≤k≤2n−1求最大的ai+aj,0≤i<j≤2n−1 ...

  5. AtCoder Regular Contest 061 E - Snuke‘s Subway Trip(建图 + dijkstra最短路 / 0/1bfs / 并查集)

    AtCoder Regular Contest 061 E - Snuke's Subway Trip problem 洛谷翻译 my idea 最近一直在做网络流,所以一读这题后,我就想到了最小费用 ...

  6. NOMURA Programming Contest 2021(AtCoder Regular Contest 121)

    文章目录 A - 2nd Greatest Distance B - RGB Matching C - Odd Even Sort D - 1 or 2 E - Directed Tree F - L ...

  7. AtCoder题解——AtCoder Regular Contest 107——B - Quadruple

    题目相关 题目链接 AtCoder Regular Contest 107 B 题,https://atcoder.jp/contests/arc107/tasks/arc107_b. Problem ...

  8. AtCoder Regular Contest 071 D - 井井井 / ###

    题目:http://arc071.contest.atcoder.jp/tasks/arc071_b 题意: 有一个二维的平面,给你xn根竖线和ym根横线,问这些线围成的长方形(正方形)的面积和(要求 ...

  9. AtCoder Regular Contest 062 E - AtCoDeerくんと立方体づくり / Building Cubes with AtCoDeer

    题目传送门:https://arc062.contest.atcoder.jp/tasks/arc062_c 题目大意: 给你\(N\)块正方形木板,每块木板四角有四种颜色(可以相同),木板中央有编号 ...

最新文章

  1. PostgreSQL递归查询
  2. horizon服务主要模块_Horizon Workspace 快速部署指南三(配置Workspace数据模块)
  3. VS2008源代码管理软件组合-visualSVN Server+TortoiseSVN+AnkhSvn
  4. Carryon的字符串
  5. Android开发笔记(二十)顶部导航栏ActionBar
  6. HTML:H5新特性
  7. python list 查找子列_寻找列表连续的子列
  8. hihocoder 1257 Snake Carpet
  9. whatweb tree
  10. 对Excel进行瘦身的两个方法
  11. win10任务管理器禁用_如何在Windows 10的文件资源管理器中禁用广告和通知
  12. 保利威视后台编辑FLASH播放器
  13. 系统默认只有一张内置的静态壁纸,如如何修改可以内置多张静态壁纸
  14. 【QT数字图像处理】(三)QSlider滑块学习
  15. python打开一个软件并进行操作_python程序中的进程操作
  16. java百元买百兔 穷举法_JAVA--算法与数据结构- 逢7过百钱白鸡不死神兔【1/100】...
  17. 真·富文本编辑器的演进之路-富文本Span的边界探究
  18. 计算机组成原理实验第一章
  19. 那些年——5 杜拉拉升职记
  20. Git 命令之Git clean

热门文章

  1. php 新浪面试题,php程序员面试题(新浪篇)
  2. 在c语言中如何屏蔽一段程序,如何在用C语言关闭TCP程序中的Nagle算法
  3. Java但中获取时间将时间转换成字符串格式(年月日格式)
  4. C++类模板中的static成员
  5. 位向量(bit vector)(算法导论第十一章11.1-2)
  6. 挖矿为什么要用显卡_数字货币行情分析 2020/07/17 为什么大佬们都转向显卡挖矿了?...
  7. python如何使用多线程_Python 类中的方法如何多线程调用?
  8. word List28
  9. E. Beautiful Subarrays(思维 01 trie 树)
  10. 邻值查找—算法进阶指南