随笔分类 - 题解
摘要:A - 22222 遍历字符串\(s\),按题意输出所有2即可。 点击查看代码 #include<bits/stdc++.h> #define int long long using namespace std; string s; signed main(){ cin>>s; for(auto a
阅读全文
摘要:A - Poisonous Oyster 如果两人都肚子疼,就是第\(1\)瓶。 如果只有Takahashi肚子疼,就是第\(2\)瓶。 如果只有Aoki肚子疼,就是第\(3\)瓶。 如果都不肚子疼,就是第\(4\)瓶。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/std
阅读全文
摘要:A - Shuffled Equation 显然只有最大值可能被相乘得到,所以对\(a\)从小到大排序,判断\(a[0]\times a[1]=a[2]\)是否成立即可。 时间复杂度\(O(1)\)。 点击查看代码 #include<bits/stdc++.h> using namespace st
阅读全文
摘要:上周六没打,VP了四道,其他再补 A - Happy New Year 2025 Happy New Year 2025! 按题意输出\((a+b)^2\)即可。 点击查看代码 #include<bits/stdc++.h> using namespace std; int a,b; signed
阅读全文
摘要:A - Full House 2 容易发现,答案为Yes\(\iff\)输入中恰好出现了\(2\)种不同的数,可以用set等数据结构来计算不同元素的个数。 点击查看代码 #include<bits/stdc++.h> using namespace std; set<int> se; signed
阅读全文
摘要:P1333 瑞瑞的木棍 我们将颜色看作节点,每个木棍左右的两个颜色之间连接无向边。 可以用并查集维护连通性,每添加一条边\((u,v)\)就合并\(u,v\)所在集合,最终所有节点都在一个集合中\(\iff\)该图联通。 在回顾下无向图存在欧拉通路的判定条件,满足其一即可: 无向图是欧拉图\(\if
阅读全文
摘要:UVA10129 单词 Play on Words 将各字母看做节点,单词的首字母向尾字母连一条有向边。最终如果该图存在欧拉通路,则答案合法。 回顾一下欧拉通路的判定: 有向图是欧拉图\(\iff\)非零度节点弱连通,每个节点出入度相等 有向图是半欧拉图\(\iff\)非零度节点弱连通,恰有一个节点
阅读全文
摘要:A - Equally 显然分组情况一定是\(1+1+1\)或\(1+2\),直接判定即可。 点击查看代码 #include<bits/stdc++.h> using namespace std; int a,b,c; signed main(){ cin>>a>>b>>c; if((a+b==c)
阅读全文
摘要:A - aaaadaa 按题意模拟即可。 点击查看代码 #include<bits/stdc++.h> using namespace std; int n; char c1,c2; string s; signed main(){ cin>>n>>c1>>c2>>s; for(int i:s){
阅读全文
摘要:A - Humidifier 1 照题意模拟即可,时间复杂度\(O(n)\)。 点击查看代码 #include<bits/stdc++.h> #define int long long #define N 110 using namespace std; int n,t[N],v[N],sum; s
阅读全文
摘要:编辑字符串(edit) 初见感觉像贪心,但在不好写+不会证的情况下放弃了,然后想到DP又设不出状态。 实际上……就是贪心哦? 下文称\(s_1,s_2\)分别为\(a,b\)。 不难发现一个不存在锁定位置的区间,其内元素是可以任意交换的。 所以我们可以按照锁定位置,将两个字符串划分成若干个区间(被锁
阅读全文
摘要:CF1063B Labyrinth ~ Codeforces 数据范围较小,考虑使用搜索。 由于向左向右的步数限制过大,我们只能用\(x,y\)进行记忆化,否则空间和时间都过不去。 既然状态只有\(x,y\),我们就要让最优情况最先被遍历到,所以考虑BFS。 我们考虑,对于\((x,y)\)状态来说
阅读全文
摘要:P8867 [NOIP2022] 建造军营 只有B国袭破坏的道路是无向图的割边时,这张图才会变得不连通,所以我们进行边双缩点,最终形成一棵树,不妨令根节点为\(1\)。 记\(E[u]\)为缩点后的\(u\)包含多少条原图上的边,\(V[u]\)为\(u\)包含多少个原图上的点,并定义\(s[u]\
阅读全文
摘要:P3629 [APIO2010] 巡逻 \(k=1\)时,我们一定贪心选择直径\(d\)的两个端点建立道路,所以答案是\(2\times(n-1)-d+1\)。 \(k=2\)时,两条新建的道路恰好形成\(2\)个环,我们通过手玩可以发现一个结论: \(1\)条边恰好被经过\(1\)次,当且仅当它恰
阅读全文
摘要:P3146 [USACO16OPEN] 248 G(弱化版) P3147 [USACO16OPEN] 262144 P 我们先考虑区间dp,设\(f[i][j]\)表示\(a[i,j]\)恰好合并成\(1\)个元素后的答案,\(0\)表示无法合并。 那么对于\(k\)使得\(f[i][k]=f[k+
阅读全文
摘要:原题页面:https://ac.nowcoder.com/acm/contest/65194 Statements & Solution : https://www.luogu.com.cn/problem/U507978 \(80+80+50+24=234\)。 A 贪心+双指针。 根据贪心思想,
阅读全文
摘要:P1641 [SCOI2010] 生成字符串 由题意可设\(f[i][j]\)表示用了\(i\)个\(0\),\(j\)个\(1\)的答案,那么有转移: \[f[i][j]=\begin{cases} 0&i>j\\ f[i][j-1]&i=j\\ f[i-1][j]+f[i][j-1]&i<j\\
阅读全文
摘要:P2151 [SDOI2009] HH去散步 发现\(n,m\)非常小而\(t\)非常大,所以果断考虑矩阵。 这道题如果不限制“不能立即沿刚刚过来的路回去”,就直接用邻接矩阵求\(t\)次幂然后直接调用\(ans[a][b]\)就好了。 加上限制后,我们用点就比较难考虑了,因为点是无方向的。 我们可
阅读全文
摘要:整套都是牛客的原题所以就不设密码了( 原题页面:https://ac.nowcoder.com/acm/contest/65193 Statements & Solution:https://www.luogu.com.cn/problem/U507206 Solution:https://www.
阅读全文