自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(189)
  • 收藏
  • 关注

原创 缩点 边双点双 板子

缩点 差分约束

2022-08-10 14:16:22 371

原创 SPFA判负环板题

SPFA判负环

2022-07-24 15:14:29 350

原创 E Falfa with Substring

FFT 容斥 板题

2022-07-24 15:03:42 538 2

原创 F - Sanae and Giant Robot

妙妙题

2022-07-03 10:27:42 234

原创 Codeforces Round #796 (Div. 2)

div2

2022-07-03 10:26:19 242

原创 Hot Water Pipe

妙妙题

2022-07-03 10:01:00 178

原创 Game

莫队板子

2022-07-03 09:59:20 120

原创 E - AND-MEX Walk (并查集理解)

E - AND-MEX Walk分析:结论+并查集的连通性求解首先易证答案就3种:0,1,2故分类讨论(分别对30位求解连通性):0:存在某一位使得u,v连通1:存在某一位的连通块的 边的集合 存在偶数边,这样就能先到 偶数边 再到v 这样保证 ans=12:其余情况#include <bits/stdc++.h>#define int long long #define Pa pair<int,int> using namespace std;

2022-04-26 16:41:08 429

原创 E - The Journey of Geor Autumn(线性DP,前缀和)

E - The Journey of Geor Autumn分析:线性DP+前缀和令dp[i]表示前i个数的方案数贡献dp[i]=∑j=1kdp[i−j]∗(j−1i−1)∗fac[j−1]dp[i]=\sum_{j=1}^k dp[i-j]*(_{j-1}^{i-1})*fac[j-1]dp[i]=j=1∑k​dp[i−j]∗(j−1i−1​)∗fac[j−1]对于dp[i],首先找到最小的元素x,那么x必然会出现在前k个枚举这k个位置,每个位置都是将len 分为了两部分,x在

2022-04-11 16:05:19 510 1

原创 Educational Codeforces Round 126 (Rated for Div. 2)

Educational Codeforces Round 126 (Rated for Div. 2)A - Array Balancing从后往前 直接反转即可,无后效性#include <bits/stdc++.h>#define int long long #define Pa pair<int,int> #define yes cout<<"YES\n";#define no cout<<"NO\n";using namespace

2022-04-11 12:20:19 586 2

原创 FFT 板子

存个偷来的多项式板子,用过的都说好(赞)constexpr int P(998244353), G(3), L(1 << 18);inline void inc(int &x, int y) { x += y; if (x >= P) x -= P;}inline void dec(int &x, int y) { x -= y; if (x < 0) x += P;}inline int mod(LL x) { return x % P;

2022-04-05 14:58:01 525

原创 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 228

原创 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 204

原创 CodeTON Round 1 (Div. 1 + Div. 2)

CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes!)A - Good Pairs签到~#include <bits/stdc++.h>#define int long long #define Pa pair<int,int> using namespace std;const int N=1e5+5;struct node { int x,id; bool operator < (const

2022-03-27 16:42:48 853

原创 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 495

原创 Educational Codeforces Round 125 (Rated for Div. 2)

Educational Codeforces Round 125 (Rated for Div. 2)A - Integer Moves签到#include <bits/stdc++.h>#define int long long #define Pa pair<int,int> using namespace std;const int N=1e5+5;void solve(){ int x,y; cin>>x>>y

2022-03-23 21:20:36 780

原创 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 1267

原创 B - Chessboard

B - Chessboard分析:阅读理解题,组合数学,神仙思维" the shortest distance between any two blocks would remain unchanged after they were painted"主要是这句话,不能让任意两个访问过的格子的最短距离发生改变,想一下可以发现以下几条规则:首先,从始至终都是在同一个连通块,然后不断向外扩展到最后,画满的情况下,任意两点的最短路都是曼哈顿距离最后,结束的地方一定是四角之一为了满足

2022-03-16 20:58:46 658

原创 工作安排(反悔贪心板子题)

工作安排 - 题目 - Daimayuan Online Judge分析:贪心,将set当链表用从后往前考虑(这样先入队的就一直能到最后),碰到更小的时刻,就将之前入队的 能出的全出#include <bits/stdc++.h>#define int long long #define Pa pair<int,int> using namespace std;const int N=1e5+5;struct node { int d,p; bool

2022-03-14 21:01:09 1955

原创 Codeforces Round #775 (Div. 2)

Codeforces Round #775 (Div. 2)A - Game签到题~#include <bits/stdc++.h>#define int long longusing namespace std;const int N=1e3+5;int a[N];void solve(){ int n,m; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; int l=1,

2022-03-13 14:46:22 674

原创 超市(优先队列,区间动态变化)

超市优先队列,区间 l,rl,rl,r 动态选择的一些小技巧本题,就是随时间增加,g[i]g[i]g[i] 入队#include <bits/stdc++.h>#define int long long #define Pa pair<int,int> using namespace std;const int N=1e5+5;struct node { int x,r,w; bool operator < (node b) co

2022-03-11 20:31:41 272

原创 Educational Codeforces Round 124 (Rated for Div. 2)

Educational Codeforces Round 124 (Rated for Div. 2)A - Playoff签到~#include <bits/stdc++.h>#define int long long using namespace std;const int N=1e5+5;void solve(){ int n; cin>>n; int ans=1; for(int i=1;i<=n;i++) an

2022-03-11 12:12:43 563 4

原创 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 363

原创 CF772 E - Cars(二分图染色,拓扑排序)

E - Cars分析:二分图染色,拓扑排序分两类情况:相遇:只能相向而行(xr<xlx_r<x_lxr​<xl​)相离:只能背向而行(xr>xlx_r>x_lxr​>xl​)因此,不管是什么情况,相邻两点方向不同,先跑一遍二分图染色,不成立,则 “NO”染完色之后,令 1向R走,0向L走,建有向图相遇:xr<xlx_r<x_lxr​<xl​ ,建 1 到 0 的边相离:xr>xlx_r>x_lxr​>xl​

2022-02-25 16:46:21 641

原创 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 704

原创 Codeforces Round #773 (Div. 2)

Codeforces Round #773 (Div. 2)A - Hard Way签到题,当某两个点连线与x轴平行,且第三个点在这条连线之下,才做考虑#include <bits/stdc++.h>#define int long long using namespace std;const int N=1e5+5;void solve(){ int a,b,c,d,e,f; cin>>a>>b>>c>>d

2022-02-24 10:26:35 511

原创 Educational Codeforces Round 123 (Rated for Div. 2)

Educational Codeforces Round 123 (Rated for Div. 2)A - Doors and Keys#include <bits/stdc++.h>#define int long long using namespace std;const int N=1e5+5;void solve(){ string s; cin>>s; int a=0,b=0,c=0,fg=0; for(int i

2022-02-23 16:50:06 270

原创 Codeforces Round #772 (Div. 2)

Codeforces Round #772 (Div. 2)A - Min Or Sum签到题#include <bits/stdc++.h>#define int long long using namespace std;const int N=1e5+5;int a[N];void solve(){ int n; cin>>n; int s=0; for(int i=1;i<=n;i++) cin>>a[

2022-02-22 19:11:17 432

原创 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 448 1

原创 2022牛客寒假算法基础集训营1

2022牛客寒假算法基础集训营1A.九小时九个人九扇门分析:要先发现一个特点:对于多个数的合并,先求和再求根,与先分别求根 再求根的和 的根,效果是一样的,举个栗子:17+23+79=119=2,8+5+7=20=2因此,先分别将n个数求取根,就变成n个1~9的数了然后就是类似01背包的动态转移dp[i][change(x+j)]+=dp[i−1][j]dp[i][change(x+j)]+=dp[i-1][j]dp[i][change(x+j)]+=dp[i−1][j]转换

2022-01-25 20:28:09 186

原创 K. 冒险公社 (线性DP)

K. 冒险公社题意:根据预测情况,求前 n 个岛最多的绿岛数分析:没有思路的情况下,先想了一下暴力,O(3n)O(3^n)O(3n) 显然超时暴力枚举所有情况,每次都会考虑n个岛的具体颜色但实际上,对于每次预判我们只需要考虑当前岛和其前两个岛的颜色即可所以,考虑线性DP,枚举每三个岛的情况,记录状态,再状态转移即可dp[i][y][z]dp[i][y][z]dp[i][y][z] 表示前 i 个岛,第i个岛颜色为z,第i-1个岛颜色为y的情况下,最多绿岛数,那么状态转移方程为,

2022-01-25 15:38:04 533

原创 Codeforces Round #761 (Div. 2)

Codeforces Round #761 (Div. 2)A - Forbidden Subsequence分析:只有当 T=“abc”,且主串排完序后,有"abc"在子序列的时候,需要将 bc 换一下位置#include <bits/stdc++.h>using namespace std;const int N=1e6+5;char s[N];int vis[55];signed main(){ int T; cin>>T; w

2021-12-16 23:46:03 502

原创 Codeforces Round #757 (Div. 2)

Codeforces Round #757 (Div. 2)A. Divan and a Store分析:贪心#include <bits/stdc++.h>#define int long long using namespace std;const int N=1e6+5;int a[N];void solve(){ int n,l,r,k; cin>>n>>l>>r>>k; for(int i

2021-11-26 22:27:50 651

原创 Codeforces Round #756 (Div. 3)

Codeforces Round #756 (Div. 3)A. Make Even分析:就 0,1,2,−10,1,2,-10,1,2,−1 四种情况#include<bits/stdc++.h>#define int long longusing namespace std;const int N=1e6+5;char s[N];signed main(){ int T; cin>>T; while(T--) {

2021-11-26 16:43:44 568 1

原创 2021 ICPC 沈阳站 B. Bitwise Exclusive-OR Sequence(亦或,位运算,菊花图)

2021 ICPC 沈阳站B. Bitwise Exclusive-OR Sequence分析:图由链和环构成考虑环: 从一个点开始到这个点结束的亦或和为0(因为每个点权都用了两次),就是说:若出现环,且环的亦或和不为0,就输出 “-1”考虑链:从链的一端出发 设 (a1,a2,...,an)(a_1,a_2,...,a_n)(a1​,a2​,...,an​) 为链上的点权a1∧a2=w1a_1\land a_2=w_1a1​∧a2​=w1​a2∧a3=w2a_2\land a_3

2021-11-23 19:50:18 1253

原创 Educational Codeforces Round 117 (Rated for Div. 2)

Educational Codeforces Round 117 (Rated for Div. 2)A. Distance构造#include <bits/stdc++.h>#define int long longusing namespace std;const int N=1e5+5;signed main(){ ios_base::sync_with_stdio(0); int T; cin>>T; while(T--)

2021-11-22 20:17:26 891

原创 状压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 167

原创 Codeforces Round #753 (Div. 3)

Codeforces Round #753 (Div. 3)A. Linear Keyboard#include <bits/stdc++.h>#define int long long using namespace std;const int N=1e6+5;char s[N],sr[N];int a[N];signed main(){ int T; cin>>T; while(T--) { cin>>s+1>>sr+1;

2021-11-05 17:40:23 127

原创 K. Hiding a Tree (模拟,分类讨论,情况合并)

K. Hiding a Tree分析:发现对 ansansans 造成影响的只有度为奇数的点,度为偶数的点就不用管因此,我们要修改的就是度为奇数且能修改的点再想一下,发现当这样的点存在三个或三个以上,直接修改这三个点即可然后就是,考虑当这样的点的个数小于三的情况为0,直接就输出-1为1,要去找一个可交换值的度为偶数的点为2,先看一下存不存在 ”为1“ 的情况,再判断这两个点综上,可分为两大类:先判断,存不存在能交换值的度为偶数的点再特判 ”为2“ ”为3“ 的情况即可

2021-11-05 17:27:30 130

原创 2021-2022 ACM-ICPC Brazil Subregional Programming Contest (队列操作)

2021-2022 ACM-ICPC Brazil Subregional Programming ContestE. Escalator分析:这题没什么,就是一个队列的模拟然后,一直被绕来绕去,不知道如何去维护当前的时间,与每个人到达时间的关系不清楚,在何时,电梯实现状态的转换,从上升到下降 OR 下降到上升电梯上升和下降两种状态,分两类状态的转换:仔细想假设现在电梯在上升,要实现状态的转换,分两种情况:上升队列当中已经没人了下一个要上升的人的到达时间,超过了电梯停止的时

2021-11-05 11:46:06 1812

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除