摘要:
上周六没打,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){ 阅读全文
摘要:
Index 链形均分纸牌 每次仅可交换\(1\)张 每次可交换多张 环形均分纸牌 每次仅可交换\(1\)张 每次可交换多张 拓展性很强的贪心问题。或许能推广到树之类的结构上,或者拓展到方案计数问题之类,不过目前还没想好啦。 链形均分纸牌 每次仅可交换\(1\)张 最基础的例题是这样的: 有\(n\) 阅读全文
摘要:
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)\)状态来说 阅读全文
摘要:
求\(s\)到\(t\)必须经过某个点/某条边的最短路 这个相当板子了,点\(u\)的答案是\(dis(s,u)+dis(u,t)\),边\(e=(u,v)\)的答案是\(\min(dis(s,u)+dis(v,t),dis(s,v)+dis(u,t))+w(e)\)。其中\(dis(u,v)\)表 阅读全文
摘要:
P8867 [NOIP2022] 建造军营 只有B国袭破坏的道路是无向图的割边时,这张图才会变得不连通,所以我们进行边双缩点,最终形成一棵树,不妨令根节点为\(1\)。 记\(E[u]\)为缩点后的\(u\)包含多少条原图上的边,\(V[u]\)为\(u\)包含多少个原图上的点,并定义\(s[u]\ 阅读全文
摘要:
P1776 宝物筛选 朴素多重背包 for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ for(int k=1;k*w[i]<=m&&k<=cnt[i];k++){ f[i][j]=f[i-1][j]; if(j>=w[i]) f[i][j]=max(f[i] 阅读全文
摘要:
P3629 [APIO2010] 巡逻 \(k=1\)时,我们一定贪心选择直径\(d\)的两个端点建立道路,所以答案是\(2\times(n-1)-d+1\)。 \(k=2\)时,两条新建的道路恰好形成\(2\)个环,我们通过手玩可以发现一个结论: \(1\)条边恰好被经过\(1\)次,当且仅当它恰 阅读全文
摘要:
校内自命题模拟赛,密码:校OJ地址 http://___.__._.__:____/ 补全 阅读全文
摘要:
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. 阅读全文