笔记
yuanjiuyuan
此心安处是吾乡
展开
-
2021.2.20 Guessing the Greatest (hard version) 二分细节题
题意:1-n数字的序列,每次可以问出l-r之间的第二大的值,在20次询问以内问出最大值所在的位置并输出 简单版的代码直接交,反正log21e5<20。说实话看到l-r之间的第二大的值这个题干差点吓尿了,还以为上来就是一道主席树题目,后面还来个hard version,结果是二分题目,代码细节要注意 题解:举例,n=50 问1-50,假设42是第二大,然后问1-42,两种可能,返回42或者非42,两种情况分别表示 最大值42地左边和右边,分类讨论 若是最大值在1-41内,1-41就是要二分的区间,否则原创 2021-02-20 18:27:06 · 97 阅读 · 0 评论 -
2021.2.14 Nezzar and Symmetric Array 规律题 cf
设a[i]=-a[k],对于任意的i和j,可以证明,如果|a[j]|>|a[i]|, 可证|a[j]-a[i]|+|a[j]-a[k]|=|a[j]-a[i]|+|a[j]+a[i]|=2*a[j]。也就是说a[j]对于对子a[i]和a[k]经过计算后得出来的值要么是两倍的自己,要么是两倍的别人,谁绝对值大谁赢(灵感题) 推出这个后规律显然 原数列中最大的数字,对每个原对子进行计算,得出的值必然都是2*自己,所以当前数列最大的数就是原数列最大的数,当前第二大的就是原数列第二大的(只要不和最大的值比较原创 2021-02-14 23:43:36 · 82 阅读 · 0 评论 -
2020.7.15 1 or 2 dfs
和以前写过的一道题很像,感谢当初自己还去回顾了一下,看到这个结构就能理解个大概,代码倒是不难理解,都没用草稿纸,脑子里就有结果,yes #include <bits/stdc++.h> using namespace std; #define ll long long const int maxn=105; /*点最多50,线最多100*/ int e[55],vis[maxn],id[55],n,m; /*e代表每个点的度数,vis代表这个点有没有被连线,id表示x点的初始下标*/ vecto原创 2020-07-17 17:31:34 · 80 阅读 · 0 评论