
神仙
文章平均质量分 61
绝妙
yezzz.
这个作者很懒,什么都没留下…
展开
-
F - Sanae and Giant Robot
妙妙题原创 2022-07-03 10:27:42 · 200 阅读 · 0 评论 -
E - Equal Tree Sums(树上问题)
E - Equal Tree Sums分析:神仙思维+树上问题+结论如果没有ai!=0a_i!=0ai!=0的条件,直接全取0就是现在有这个条件,想办法往这个条件构造考虑树上的任意一条边的两个端点,往0靠,则正负取,即黑白染色每个点的权值取其度数这样就能保证这一整颗树(无根树)的权值为0,任意去掉一个“根节点”若根为正:则剩下的子树的权值和都是为-1若根伟负:则剩下的子树的权值和都是为1#include <bits/stdc++.h>#define int原创 2022-03-27 16:45:51 · 199 阅读 · 0 评论 -
D - K-good
D - K-good分析:推式子+分类讨论+分解因数n−(k+1)k/2≡0(mod k)n-(k+1)k/2\equiv 0(mod \ k)n−(k+1)k/2≡0(mod k)因为a[i]>0,所以不是(k−1)k/2(k-1)k/2(k−1)k/2可以看出要分两类:k为奇数:则k为n的因数k为偶数:则k2\frac{k}{2}2k为n的因数#include <bits/stdc++.h>#define int long l原创 2022-03-27 16:44:44 · 177 阅读 · 0 评论 -
E - Star MST(组合数学+DP)
E - Star MST分析:组合数学 + DP只需要给出根节点出发的n-1条边的长度,剩下的边的长度,就是由这些边推出来的具体原理详见大佬dp[i][j]dp[i][j]dp[i][j] 表示前i条边,最大边到j时的方案(总数)#include <bits/stdc++.h>#define int long long #define Pa pair<int,int> using namespace std;const int N=255, mo原创 2022-03-23 21:21:58 · 445 阅读 · 0 评论 -
D - For Gamers. By Gamers.
D - For Gamers. By Gamers.分析:阅读理解+打表+二分答案(神仙打表)令我方的伤害和血量分别为(a,b)(a,b)(a,b),敌方为(c,d)(c,d)(c,d), 我方的数量为n则,我方能打死敌方的条件是:KaTeX parse error: Expected 'EOF', got '&' at position 14: \frac{d}{na}&̲<&\frac{b}{c} \…b[i]b[i]b[i] 表示花费i最大的伤害原创 2022-03-23 19:10:51 · 1216 阅读 · 0 评论 -
B - Chessboard
B - Chessboard分析:阅读理解题,组合数学,神仙思维" the shortest distance between any two blocks would remain unchanged after they were painted"主要是这句话,不能让任意两个访问过的格子的最短距离发生改变,想一下可以发现以下几条规则:首先,从始至终都是在同一个连通块,然后不断向外扩展到最后,画满的情况下,任意两点的最短路都是曼哈顿距离最后,结束的地方一定是四角之一为了满足原创 2022-03-16 20:58:46 · 617 阅读 · 0 评论 -
CF770 E - Fair Share(神仙构造)
E - Fair Share分析:思维+欧拉回路首先考虑不成立的情况,当存在某一数只出现奇数次,则不成立对于每个序列都要 L R 二分,奇数号点向偶数号点建边,黑白染色后相邻两点被分别分到LR,这样以来每个序列都是LR二分的然后就是关键,最后要使LR是相同的,对于相同的数字,每两个每两个的建边最后再跑染色,是完全可以构造出来的#include <bits/stdc++.h>#define int long long using namespace std;原创 2022-02-26 13:39:04 · 337 阅读 · 0 评论 -
CF773 E - Anonymity Is Important(stl迭代器的各种用法)
E - Anonymity Is Important分析:区间覆盖,set去重,剔除无效信息输出有三种情况:NO:最好处理,在之前被删除过YES:对于当前x,它前面一个,后面一个不与它共有一个有效区间,也就是说x本身有一个有效区间(有效区间是指可能有病人的区间)N/A:即其它情况,与其它(前或后)有重合区间剔除无效信息:对于每一个点,至多两个区间对其有效,一个左一点,一个右一点#include <bits/stdc++.h>#define int long原创 2022-02-25 14:59:40 · 641 阅读 · 0 评论 -
G.ACM is all you need (map 遍历,分类讨论,思维)
G.ACM is all you need分析:map 遍历,分类讨论,思维若对 a[i](1<i<n)a[i](1<i<n)a[i](1<i<n) 展开讨论,会有四种情况a[i]<a[i+1] and a[i]<a[i−1]a[i]<a[i+1] \ and\ a[i]<a[i-1]a[i]<a[i+1] and a[i]<a[i−1]:会对 ans 贡献1,当b比某个值还要大原创 2022-01-25 20:32:06 · 425 阅读 · 1 评论 -
状压DP入门记录
状压DPAcWing 1064. 小国王分析:状压 DPDPDP 入门题该题当中对国王冲突的处理,即 checkcheckcheck 的位运算处理是状压题型非常经典的操作f[i][j][state]f[i][j][state]f[i][j][state] 表示前 iii 行放置 jjj 个国王,且第 iii 行的放置状态为 statestatestate 的方案数ans=∑state=0f[i][j][state]ans=\sum_{state=0}^{}f[i][j][state原创 2021-11-07 19:29:11 · 133 阅读 · 0 评论 -
J - Jinxed Betting (推式子,模拟,阅读理解好题)
J - Jinxed Betting题面:Julia is betting on a large sporting competition involving matches between pairs of teams. There are no parallel matches and each bettor receives one point for every correct bet they make. Julia had a good streak and is in the lead.原创 2021-11-01 14:39:04 · 285 阅读 · 0 评论 -
2021 ICPC 辽宁省 B. 阿强的路 (多源点路径,多条件下状态转移,Floyd魔改)
B. 阿强的路题意:“所有这两点间的路径中能得到的最小的路径最大点权乘以路径最大边权”就这句话,断句很重要!!!如果跟我一样断在“最小的路径”后面(小学语文水平),那就完全错了,就一直想着在最短路上跑,泡了个寂寞要断在“最小的”后面,就是对于任意两点的所有路径,找到一条路径,这条路径上的最大点权乘最大边权是所有路径最小的那条分析:多源点路径 DPDPDP多源点路径上的问题,可以想到在 FloydFloydFloyd 上跑为什么要排序?同时维护两个东西:最大边权和最原创 2021-10-29 16:44:36 · 306 阅读 · 2 评论 -
2021 ICPC 江西省 A. Mio visits ACGN Exhibition(DP,大离谱,经验分享)
A. Mio visits ACGN Exhibition分析:DP +DP\ +DP + 降维优化f[i][j][x][y]f[i][j][x][y]f[i][j][x][y] 表示从 (1,1)(1,1)(1,1) 走到 (i,j)(i,j)(i,j),经过 xxx 个 000 和 yyy 个 111 的方案数因为非 000 即 111 (y=i+j−1−x)(y=i+j-1-x)(y=i+j−1−x),故第四维可以直接去掉然后就可以得到:f[i][j][x]={原创 2021-10-25 21:05:31 · 920 阅读 · 6 评论 -
2021 ICPC 江西省 H. Hearthstone So Easy 详解(博弈论,分类讨论,推式子,逆推)
H. Hearthstone So Easy分析:博弈题(不知道算啥博弈)可以发现:不管先后手如何操作,一轮回和结束之后(两者都活着)两者的血量都是一样的考虑先手如何才能取胜:先手必须要尽快扣死后手,不然拖到下一轮,先手抽卡阶段就有可能被扣死故,先手最优解,会一直选择扣后手的血考虑后手如何才能取胜:后手不可能直接扣死先手,若存在这种情况,先手能更先扣死后手,故矛盾因此,后手只能跟先手耗时间,等着某一回合结束的下一回合,先手抽卡阶段直接被扣死故,后手只会在倒数第原创 2021-10-24 21:03:42 · 961 阅读 · 0 评论 -
2021 ICPC 江西省 J. LRU (二分答案,stl大杂烩,map,set,queue)
J. LRU分析:二分答案 +++ mapmapmap andandand setsetset andandand queuequeuequeue 乱搞让我们求最小的满足条件的缓存容积(为了方便,下文用长度表示),可以想到用二分主要的麻烦点在于判断当前二分的长度 (d)(d)(d) 是否成立要维护长度始终小于等于 ddd,然后 ddd 个元素又互不相同,可以用 set+queueset+queueset+queue 来维护:最后一个难想的点就是结束出队的条件(详见代码)为什么想原创 2021-10-23 23:14:35 · 894 阅读 · 1 评论 -
hdu 7136 Jumping Monkey (并查集,重构树)
hdu 7136 Jumping Monkey分析:并查集+重构树可以想到 BFSBFSBFS 去遍历,每次从当前权值最大点出发跑一遍 BFSBFSBFS,经过的点的 dep++dep++dep++然后,便将权值最大点去掉,继续重复上一个操作但是,这样显然会 TTT(代码见下文)考虑如何优化?(从比赛开始到结束,也没想出怎么优化)nnn 遍 BFSBFSBFS ,过程有很多步是重复的如果这棵树以权值最大点为根,从上到下的权值是递减的,那答案就是每个节点的深度(这就很 niceni原创 2021-10-12 15:52:36 · 435 阅读 · 0 评论 -
281. 硬币 - AcWing (多重背包,巧妙优化)
281. 硬币 - AcWing分析:容易想到暴力 O(nmCi)O(nmC_i)O(nmCi),显然会TTT#include <bits/stdc++.h>using namespace std;const int N=105,M=1e5+5;int a[N],c[N];int f[M],g[M];signed main(){ int n,m; while(cin>>n>>m && n) { for(int i=1;i原创 2021-10-06 17:19:30 · 153 阅读 · 0 评论 -
C-Making the Grade (优先队列神仙优化)
C-Making the Grade优先队列的 O(nlogn)O(nlogn)O(nlogn) 神仙解法(分析待补充,现在讲不灵清)可以先看一下大佬的:ButterflyDew 的博客#include <bits/stdc++.h>using namespace std;const int N=1e5+5;int a[N];priority_queue < int,vector<int>,less<int> > q;signed main(原创 2021-10-04 16:39:46 · 177 阅读 · 0 评论