- 2024-11-01OIFC未来共同体20241030noip模拟四
T1我们发现\(1\)其实根本没有用,只和一个连通块里的\(0\)的个数有关,直接\(dfs\),判断即可。#include<iostream>#include<cstring>usingnamespacestd;inlineintread(){registerintx=0,f=1;registercharc=getchar();while(c<'0'||c>'
- 2024-11-01OIFC未来共同体20241028noip模拟三
T1状压\(dp\),两两之间有相同的位,那一位就为\(1\),否则就为\(0\),考虑哪些选法不合法,要在\(0\)的位上为\(1\),即只在\(1\)上选和不选都是不可以的,于是状压\(dp\)即可。#include<iostream>#defineintlonglongusingnamespacestd;inlineintread(){registerintx
- 2024-11-01OIFC未来共同体20241023noip模拟二
T1考虑从后往前去做,随机化字母权值,考虑两个字符,一个设为正的权值,一个设为负的权值,两两就可以抵消,若有一个后缀权值等于另一个后缀权值且长度为偶数,就肯定有一个回文串,若有一个后缀权值等于另一个后缀权值加减一个字母的权值且长度为奇数,就也肯定有一个回文串,存下来,离散化即可。#
- 2024-11-01OIFC未来共同体20241021noip模拟一
T1建边,发现要找偶环,但两个奇环也可以拼在一起,于是按照上面的思路模拟即可。但是挂了一个点,不知道为啥。#include<iostream>#include<vector>#include<cstring>usingnamespacestd;inlineintread(){registerintx=0,f=1;registercharc=getchar();while(c<