漫漫智力康复之路
文章平均质量分 56
一些明明很简单但是写不出来的题目
x-d-xxh
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CF1624C Division by Two and Permutation
原题链接题意t 组数据每组给一个长度为 n 的序列 a . 可以对序列中的每个数做除以 2 操作(向下取整),问这个序列能否通过这种操作变成一个 1 - n 的排列。思路赛时有想到优先给能凑到的数个数少的数先凑,然后有一个错误思路是如果一个数本身就再 1- n 内那么就不动它…… 然后自以为学了点 stl ,就一顿乱写,结果是一个半小时都没弄出来。。。正确思路是:通过枚举发现越大的数能凑到的数越少,因为每个数都可以凑到 1,越往上就越少。然后对于每个数,首先先使它除到小于等于 n ,然后再使它能原创 2022-01-14 01:05:55 · 502 阅读 · 1 评论 -
CF1574A Regular Bracket Sequences
原题链接题意构造出n个长度为 2∗n2 * n2∗n 的合法括号序列、思路按这种方式模拟即可。详情见代码。代码#include<bits/stdc++.h>using namespace std;map<int, int> f;int main(){ int t; cin >> t; while (t -- ) { int n; cin >> n; for (int j = 1; j <= n; j ++ )原创 2021-12-26 16:52:23 · 329 阅读 · 0 评论 -
Brexit (搜索)
原题链接题意思路很普通的搜索,和拓扑排序很像。先把要走的点放进队列,然后和它相连的点度数-1,如果一个点的度数小于他原本的两倍,就把它放入队列,继续用它去更新和它相连的点代码#include<bits/stdc++.h>using namespace std;const int N = 2e6 + 10;vector<int> g[N * 2];bool st[N * 2]; //n个国家,m个关系,我的祖国编号,第一个离开的编号 int n, m, x,原创 2021-12-22 18:45:14 · 942 阅读 · 0 评论 -
Beautiful Now (BFS暴力)
原题链接题意意思就是,交换K次以内两位数,找出一个最大值和一个最小值思路对于最大值和最小值分开来求,分别跑一遍BFS,一个取最大值,一个取最小值。为了方便,可以用字符串的字典序来比大小,效果和数字比大小相同。然后搜索时,我们用类似冒泡排序的方式进行求max时,当s[i] < s[j]时,再把字符串放进队列求min时,当s[i] > s[j]时,再把字符串放进队列不然的话,也没有意义。同时在放入队列时,还要判断第一个字符是不是0,如果是0也不能放入队列。因为题目要求不能有前原创 2021-12-22 10:54:56 · 451 阅读 · 0 评论 -
Krypton DP,01背包 (2020 China Collegiate Programming Contest Changchun Onsite)
原题链接题意有n元钱去买东西东西都是固定的第一列是买这个需要的花费第二列是买这个可以获得几个东西第三列是第一次买这个东西时可以免费获赠的东西(差不多是首充概念)问有n元钱,最多可以买到几个物品?思路通过观察发现,除了第一次购买,其他都是第一次买10个物品,那么我们可以转换思路为,N元钱如何才能获得更多的奖励,用01背包即可,因为一元钱都可以买到10个物品,在此基础上,我们使奖励多就行了,跑01背包即可。体积为总钱数,价值为首充可额外获得的钱数。f[i][j]=max(f[i][j],f原创 2021-12-21 20:45:26 · 123 阅读 · 0 评论
分享