
交互
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
2020ByteDance Camp网络选拔赛 F Interactive Valuer
艹 啊,不会L啊,打了一半去南京热身赛了,队友后面的题也不会。。。前面有没有好哥哥放弃一下名额啊。。。这题就是大模拟就完了,因为可能有环,那我们就强连通分量先缩点,然后resnum记录每个testcase还有多少没确定的subtask需要测他如果一个subtask中的一个点没过,那么就dfs所有依赖于他的全部标记为失败,并把所有要问的测试点resnum[x]--每次找到离now最近的还需要测的点也就是resnum[]>0...原创 2020-12-19 22:24:22 · 235 阅读 · 0 评论 -
gym102155I ≤ or ≥
https://codeforces.com/gym/102155/problem/I我们令S=_\sum{3^k},然后找中位数可知左边右边就是S/2然后我们让某一边全都少了一层,就相当于/3那么减去的部分就是S/2*(2/3)=S/3,每次操作S就会变成2/3Sn=1e4,k=10的时候,50次刚好能让S<1,其实只要<=n就行了,因为3^0=1选4也可#include<bits/stdc++.h>using namespace std;typedef原创 2020-12-07 03:06:21 · 344 阅读 · 0 评论 -
gym102341C. Cloyster
https://codeforces.com/gym/102341/problem/C首先观察发现对于任意一个数,一定有通向最大数的路径那么我们就可以对最大值所在区间进行二分,选择长和宽较大的那边进行二分然后我们考虑二分中线上的最大值,如果它比已有的最大值还要大,那么再找他周围四格中的最大值, 如果四格最大值在他左边,由于这个中线上的最大值无法通过中线其他格子找到全局最大值,只能通过他自己到达左边,说明全局最大值就在左边那么我们不断地二分长宽,直到找到最大值,这样是近似于3n的代码写得比原创 2020-11-29 21:18:43 · 309 阅读 · 0 评论 -
codeforces1407C Chocolate Bunny
https://codeforces.com/contest/1407/problem/C因为是1-n的排列,那么如果pi%pj<pj%pi,那么一定是pj=pj % pi,每次随便找两个没确定的数字比较一下,一共2*(n-1)次询问就能找出1-n-1.#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxl=3e5+10;int n,m,cnt,tot,cas,ans原创 2020-09-09 01:40:53 · 238 阅读 · 0 评论 -
codeforces1392E Omkar and Duck
https://codeforces.com/contest/1392/problem/E每走一步,曼哈顿距离都是在减小的,所以我们对于到达终点相同曼哈顿距离的点(反对角线),相邻两个一个放2^i,一个放0,那么你到了每个点只能向右走或者向下走,其中有一个是0,一个是2^i,就可以判断下一个点走到哪了。#include<bits/stdc++.h>#define pb push_backusing namespace std;typedef long long ll;cons原创 2020-08-17 03:24:39 · 224 阅读 · 0 评论 -
codeforces1370F1 / F2 The Hidden Pair (Hard Version)
https://codeforces.com/problemset/problem/1370/F2先询问所有点,然后就可以得到一个u,v路径上的点,因为只有他们路径上的点的距离之和是最小的然后以这个点rt建树,二分到rt的长度可以找到较远的那个端点v,然后通过距离相减,再询问一下除去v到rt的那个距离的点,就可以找到另一个端点然而这个询问需要12次。。。题解的一个小优化,最远距离最小是sumdis/2,最大是sumdis,所以区间减少了一半。。。。就可以减少一次二分。。。。#inclu原创 2020-07-09 10:33:42 · 280 阅读 · 0 评论 -
codeforces1363D Guess The Maximums
https://codeforces.com/problemset/problem/1363/Dmd昨晚卡E卡太久了,这道水题没时间做了我平常写的二分好像都有可能要多问一次,因为出来以后还要再询问一次,改成那种边二分边记录答案的写法就过了这题就先确定最大值的最靠左的位置在哪里,然后判断那里时候被某个子集包含,如果不被任何子集包含,那么答案全是mx否则,再查询除了这个子集外的全部位置的次大值,就是这个子集的答案,其余的子集的答案全是mx#include<bits/stdc++.h&原创 2020-06-01 15:09:29 · 315 阅读 · 1 评论 -
gym100851 Jump
http://codeforces.com/gym/100851这题队友写的=,我看完后都不知道怎么下手。。。随机化找出n/2,因为有500次的冗余,任意找一个n/2相同的01串的概率是次数越多越大大的。然后我们找出n/2的任意串以后,先建设1这个位置时相同的,去枚举2-n的每个位置,和1同时翻转,看答案是不是还是n/2,如果是,那么这个位置相对于1就是错的。这样枚举完之后,我们可以输...原创 2019-10-28 22:24:29 · 146 阅读 · 0 评论 -
cf gym100917 I Interactive Casino
https://codeforces.com/gym/100917/problem/I水题啊,结果题目条件看差了,每局下注必须要是正整数,一开始找出随机种子之后输的输出0去了。我们先用50块钱找出前50次的输赢情况,然后再从1到1<<20枚举x1,向后跑50位,如果情况一致那就是的接下来就赢就赌全部,输就赌1块钱。#include<bits/stdc++.h&g...原创 2019-10-02 15:37:00 · 272 阅读 · 0 评论 -
codeforces1007C
这是曾今一场爆炸的我的第一场div1,然后跟aols和hls一起3人下紫,紫名一场体验结束。B题一直没想到做法,然后这题我是两个数的log乘起来,log1e18=60,60*60=3600就已经超过600组了,我并没有什么办法。于是看到很多神仙代码,写的各种神仙策略的判断都过了,这里是一个比较易懂的做法。我们只确定下界,然后用二进制数字去逼近,超过就2个一起缩小,小于了就下界加上当前数字。这样的复...原创 2018-08-23 16:01:38 · 275 阅读 · 0 评论 -
codeforces1103B 二分交互题
手速场,半小时做完就开始挂机了。群里有人提出了用v和2v去比较然后我想起了曾经一道交互题是拿二进制去试探,先加大的,再加小的,看行不行。这样如果如果v%a<2v%a,那么a>2v,如果输出x,那么v<a<2v就可以确定a的上下区间,分别是v和2v。然后再去二分mid,每次输出v和mid,找到v%a<mid%a的mid的最大值。那么mid+1就是a...原创 2019-01-23 09:29:44 · 435 阅读 · 0 评论