随笔分类 -  OI/ACM题解

摘要:A 发现长度为 2 的一定是最好的。 #pragma GCC optimize("O3") #include<bits/stdc++.h> using namespace std; #define endl '\n' #define debug(x) cerr << #x << ": " << 阅读全文
posted @ 2021-07-30 11:39 HinanawiTenshi 阅读(52) 评论(0) 推荐(0) 编辑
摘要:C 签到题,看看最多加多少条边这个图还是树。 int main(){ int a, b; cin>>a>>b; int res=a*b; if(res&1) puts("NO"); else puts("YES"); return 0; } D 签到题 模拟 int main(){ int T; c 阅读全文
posted @ 2021-07-23 22:03 HinanawiTenshi 阅读(53) 评论(0) 推荐(0) 编辑
摘要:补一波牛客多校的题解~ A 这题我的想法是记忆化搜索,如果当前状态能够转移到必败态,那么当前状态就是必胜态。 直接枚举的话复杂度是 O(N3logN) ,所以我打了个表,将所有必败态存了下来。 下面是 generator ,因为打表程序已经被我丢掉了所以就贴截图了(悲 然后这是 AC 代码 阅读全文
posted @ 2021-07-23 21:50 HinanawiTenshi 阅读(708) 评论(0) 推荐(0) 编辑
摘要:绝赞自闭 China Round A 模拟。 无解的情况是前后总和不等。 然后当 ai>bi 时就向后填,ai<bi 时就把后面的搬过来,这样操作就能保证 a=b 了。 #pragma GCC optimize("O3") #include<bits/stdc++.h> usin 阅读全文
posted @ 2021-07-12 12:45 HinanawiTenshi 阅读(69) 评论(0) 推荐(0) 编辑
摘要:传送门 题意 给定一个连通的无向图让你进行加边操作,要求每一对点之间都至少有两条相互分离的路径,求最小的加边数。 两条路径相互分离,是指两条路径没有一条重合的道路。 分析 这意味着,从一个点到另一个点,不能够存在一条边满足:如果不经过这条边,这个点就到不了另一个点。 换句话说,就是不能存在一条边,使 阅读全文
posted @ 2021-07-06 14:04 HinanawiTenshi 阅读(332) 评论(0) 推荐(2) 编辑
摘要:这场还是很有区分度的(逃 A 贪心,从小到大模拟合并的过程。 #pragma GCC optimize("O3") #include<bits/stdc++.h> using namespace std; #define endl '\n' #define debug(x) cerr << #x < 阅读全文
posted @ 2021-07-01 17:36 HinanawiTenshi 阅读(42) 评论(0) 推荐(0) 编辑
摘要:这场挺难orz A tag 有二分emm,但我没二分 把严格大于转化为大于等于,然后求个临界点,特判一下边界即可。 #include<bits/stdc++.h> using namespace std; int main(){ int T; cin>>T; while(T--){ int a, b 阅读全文
posted @ 2021-06-29 20:09 HinanawiTenshi 阅读(30) 评论(0) 推荐(0) 编辑
摘要:传送门:https://codeforces.com/contest/1207 A 模拟 #pragma GCC optimize("O3") #include<bits/stdc++.h> using namespace std; #define endl '\n' #define debug(x 阅读全文
posted @ 2021-06-22 21:54 HinanawiTenshi 阅读(26) 评论(0) 推荐(0) 编辑
摘要:这题贪心的话似乎不太可行我没想出怎么贪,所以用区间dp来解决。 更好的阅读体验:qwq 分析 f[l][r] 表示先手在区间 [l,r] 的最优决策所能给他带来的贡献,因为区间 [l,r] 的总和 s[l,r] 是一定的,那么这个最优决策在意味着最大化自己的收益 阅读全文
posted @ 2021-06-14 20:10 HinanawiTenshi 阅读(33) 评论(0) 推荐(0) 编辑
摘要:分析 如果直接使用LCS来解决,那么复杂度为 O(pq) ,显然会超时。 因为给出的两个序列的数都是互不相同的,我们将第一个序列的数按 1,2,3... 依次编号,然后将第二个序列的数(当然这个数应该是存在于第一个序列的)按照数值映射到相应的编号中,注意到题目所求的LCS恰好就是第二 阅读全文
posted @ 2021-06-14 17:41 HinanawiTenshi 阅读(32) 评论(0) 推荐(0) 编辑
摘要:传送门: https://www.luogu.com.cn/problem/P3327 https://www.acwing.com/problem/content/1360/ 莫比乌斯反演 + 整除分块 分析 首先,我们给出一个结论: \[ d(ij) = \sum_{x|i} \sum_{y|j 阅读全文
posted @ 2021-06-01 13:13 HinanawiTenshi 阅读(73) 评论(0) 推荐(0) 编辑
摘要:一发过了 D ,nice A 思维题,注意到排序后,将 an+i 插入到 ai 前即可。 #pragma GCC optimize("O3") #include<bits/stdc++.h> using namespace std; #define endl '\n' #de 阅读全文
posted @ 2021-05-29 18:31 HinanawiTenshi 阅读(104) 评论(0) 推荐(0) 编辑
摘要:传送门:https://www.luogu.com.cn/problem/P4071 分析 就是从 n 个数中挑 nm 个数,然后求 nm 的错排个数即可。 Dn 表示 n 个数错排的个数,有 错排的通式:\(D_n = n!(1 - \frac{1}{ 阅读全文
posted @ 2021-05-26 16:22 HinanawiTenshi 阅读(66) 评论(0) 推荐(0) 编辑
摘要:这次的题目挺简单的(指签到题 A 最小的数肯定去不掉,而不是最小的数一定可以在一定的操作后去掉,所以答案为 n #pragma GCC optimize("O3") #include<bits/stdc++.h> using namespace std; #define endl ' 阅读全文
posted @ 2021-05-25 19:46 HinanawiTenshi 阅读(44) 评论(0) 推荐(0) 编辑
摘要:昨晚觉得 B2 难搞就去搞 D 了,可惜细节没想好,等题解出了补上orz A 分析: 如果二进制的 nx 位,那么所求的 k 对应的二进制位数一定是 x1 (因为要让最高位成为 0),那么 x11 是不是就是答案了呢? 是,因为我们能够保证 n 到 $ 阅读全文
posted @ 2021-05-21 13:55 HinanawiTenshi 阅读(60) 评论(0) 推荐(0) 编辑
摘要:分析 题目大意:给出 n 个点的坐标 (xi,yi) ,其中 i[1,n] ,要求构造相应的点 (pi,qi)p,q 满足 pi1pi, qi1qi,使得 \(\sum ((x_i- 阅读全文
posted @ 2021-05-11 20:19 HinanawiTenshi 阅读(102) 评论(0) 推荐(0) 编辑
摘要:传送门:https://www.luogu.com.cn/problem/P5192 分析 这是一道有源汇上下界最大流的模板题(废话)。 既然是网络流的问题,故应该先将图建出来: 根据题目特征, 我们将少女和每一天看作是图中的点。 当然,因为每一天都有拍照次数的限制,我们可以加一个源点 s 阅读全文
posted @ 2021-04-28 23:45 HinanawiTenshi 阅读(861) 评论(0) 推荐(3) 编辑
摘要:upd: 2021.4.28 添加滑动窗口模板供参考。 目录 简介 滑动窗口模板 例题 简介 单调队列是如何优化DP的呢?其实就是推柿子(找到状态转移方程),然后借助柿子里面连续的特征,利用单调队列将查询最值的代价变低,进而达到优化的目的。 滑动窗口模板 模板题传送门:https://www.acw 阅读全文
posted @ 2021-04-15 21:18 HinanawiTenshi 阅读(60) 评论(0) 推荐(0) 编辑
摘要:传送门:https://codeforces.com/gym/102956 题目大意: 统计满足下列条件的数列的方案数: 非空 严格递增 任意连续三个元素的异或和不为 0 元素小于等于给定的 n 分析: f[i] 表示以 i 为尾的方案数。 考虑状态转移: 如果 \( 阅读全文
posted @ 2021-03-31 19:35 HinanawiTenshi 阅读(52) 评论(0) 推荐(0) 编辑
摘要:传送门:https://codeforces.com/gym/102956/problem/D 题目大意:给出一个数列 a ,选出一个子序列 ak ,使得子序列(长度记为 leni=1len1aki&aki+1 最大。 阅读全文
posted @ 2021-03-30 21:52 HinanawiTenshi 阅读(124) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示