随笔分类 -  CF刷题计划

摘要:"传送门大门小门中门啊大家我" $对于给定的r,b$ $为了方便,设r using namespace std; typedef long long ll; ll r,b,k; ll gcd(ll a,ll b){ return b==0?a:gcd(b,a%b); } int main() { i 阅读全文
posted @ 2020-05-15 15:31 倾叶子佮 阅读(165) 评论(0) 推荐(0)
摘要:"传送门的传说决赛" $贪心的想尽可能把前面的1变成0$ $那我们记录每个0的位置,每次遇到1就和后面最近的一个0交换$ $怎么交换?冒泡排序?我们发现我们要交换的1和0间都是1$ $所以直接swap()交换就行了,效果一样$ $注意k开long\ long$ 阅读全文
posted @ 2020-05-15 10:50 倾叶子佮 阅读(112) 评论(0) 推荐(0)
摘要:"传送门呢大门校门中美呢" $亏了这是1700分的贪心......完全是模拟嘛......$ $贪心思路还是很显然的,维护一个当前要放的板子数$ $每次选取能到的最远地方放板子,如果选那个地方导致板子放不下$ $那就选一个尽量远的地方$ $正确性是显然的,因为我们可以跳[1,d]间任意数目步子$ 阅读全文
posted @ 2020-05-15 10:20 倾叶子佮 阅读(109) 评论(0) 推荐(0)
摘要:"通往胜利(题目)的传送门" $这题其实就是一个拓扑排序啦$~~~ $对于一个三元组(q,w,e)$ $我们连一条q w,q e的边,然后对w和e也这样连边$ $那么统计入度(也就是被几个三元组包含)$ $发现入度为1的点只有两个(一头一尾)$ $举个例子一个排列$ 排列:2 3 4 5 6 1 入 阅读全文
posted @ 2020-05-15 09:43 倾叶子佮 阅读(158) 评论(0) 推荐(0)
摘要:"传动门前往传送门" $看完题解后觉得自己好蠢......$ $相信大部分人会先拿样例做实验$ $可以从前往后贪心,第一个位置只可以和后面的第一个不同类的数交换$ $基于这个,我们可以写出一个O(n^2)的算法$ $因为找后面第一个不同类的数和找到后进行冒泡交换的时间都难以优化!!$ $\color 阅读全文
posted @ 2020-05-14 10:01 倾叶子佮 阅读(187) 评论(0) 推荐(0)
摘要:"传送门" $背包其实万变不离其宗$ $普通的转移时(v表示体积w表示价值)$ $$dp[i]=max(dp[i],dp[i v]+w)$$ $现在情况稍微有点不同,我们需要保留dp[i]的前k优解,同样也保留了dp[i v]的前k优解$ $可以这样简单的表示$ $其实总共可以从dp[i]的前k优解 阅读全文
posted @ 2020-05-12 16:00 倾叶子佮 阅读(123) 评论(0) 推荐(0)
摘要:$这题感觉自己就是瞎凑......$ $首先n using namespace std; int n,t,vis[1009]; int main() { cin t; while(t ) { memset(vis,0,sizeof(vis)); cin n; if(n<=3) cout<< 1; e 阅读全文
posted @ 2020-05-11 08:03 倾叶子佮 阅读(179) 评论(0) 推荐(0)
摘要:$\colorbox{Orange}{贪心策略:每次挑选字典序最大的删除.}$ $那为什么呢?$ $回顾一下题目,当且仅当有比自己小1的字母在附近才能把自己删去$ $\color{Red}{字典序最大的字母永远不会作为其他字母的辅助字母删去其他字母}$ $比如当前最大字典序字母是d,因为d只能协助e 阅读全文
posted @ 2020-05-10 10:10 倾叶子佮 阅读(144) 评论(0) 推荐(0)
摘要:"永久打开的传送门" $\color{Pink}{ 分割 }$ $n最大有2e5,那么暴力一定不行,找规律$ $我们发现第i位的字符一定和第i+k位相等(周期)$ $第i位的字符一定和第n i+1位字符相等(回文)$ $那么每次把i,i+k,n i+1合并到一个集合(并查集)$ $最后一定是分成了若 阅读全文
posted @ 2020-05-08 10:05 倾叶子佮 阅读(206) 评论(0) 推荐(0)
摘要:"传送门" $看了一下网上都没什么题解,自己写一篇吧,对你有帮助的话留个言吧~$ $\color{Orange}{ 分割 }$ $\color{Green}{一、分析问题}$ $对于给定的n和数组a,其实是有循环存在的$ $比如[0,n)模n后余数必定是[0,n)$ $[n,2n)模n后余数必定是[ 阅读全文
posted @ 2020-05-07 17:21 倾叶子佮 阅读(409) 评论(5) 推荐(2)
摘要:"永久打开的传送门" $这次总算没有写砸........$ $设f[i][j]为上一次吃的i物品状态为j的最大收益$ $那么我们就暴力枚举所有状态i,然后在当前状态找出一个没吃的食物j,再去找一个吃过的食物q$ $$那么dp[j][i+(1 using namespace std; typedef 阅读全文
posted @ 2020-05-07 13:59 倾叶子佮 阅读(182) 评论(0) 推荐(0)
摘要:$给出数n,a,b$ $在[1,n]区间内随机选数,选出的数被a,b除后同余的概率$ $这题的精度问题真的是烦炸了~$ $设最小公倍数lcm=a b/gcd(a,b)$ $所以在区间[k lcm,k lcm+min(a,b) 1]都是同余的(k是常数)$ $并且在区间[1,min(a,b) 1]也是 阅读全文
posted @ 2020-05-07 13:26 倾叶子佮 阅读(104) 评论(0) 推荐(0)
摘要:$n元,买塑料杯子a元,买玻璃杯子b元,但玻璃杯子用完后可以卖c元$ $求最多买的杯子.$ $ 分割 $ $因为塑料杯子固定,我们先确定买多少玻璃杯子.$ $很明显当n =b(至少购买一次)且(b c)\frac{n b}{b c}$$ $因为算的时候向下取整,所以我们实际买的玻璃杯是\frac{n 阅读全文
posted @ 2020-05-07 09:10 倾叶子佮 阅读(117) 评论(0) 推荐(0)
摘要:$数学题,式子并不难推,但边界是真的烦$ $\color{Red}{Ⅰ.其实可以发现,当m =n时,每次都可以粮食补到n,所以一定是在第n天消耗完毕}$ $\color{Purple}{Ⅱ.当n m时,前m天每次粮食都补到n}$ $设从m+1天开始,需要mid天消耗完毕$ $因为每天都可以加m粮食, 阅读全文
posted @ 2020-05-06 16:49 倾叶子佮 阅读(162) 评论(0) 推荐(0)
摘要:$整体思路没错,但是我貌似太麻烦了.......$ $分情况讨论$ $Ⅰ.coin和diamond各选一个物品,这个简单$ $Ⅱ.在coin中选两个或者在diamond选两个$ $开始我想着枚举一个物品找另一个物品肯定超时$ $那我们可以直接预处理sumn[i]表示花费i时的最大收益,但是这样做可能 阅读全文
posted @ 2020-05-06 15:44 倾叶子佮 阅读(136) 评论(0) 推荐(0)
摘要:$考虑的时候,千万不能按照题目意思一组一组去模拟$ $要发现每组的最后一个数一定大于下一组的最后一个数$ $那我们可以把a中的数一个一个填充到vec中$ 阅读全文
posted @ 2020-05-06 10:39 倾叶子佮 阅读(94) 评论(0) 推荐(0)
摘要:$考虑每个区域可行的区间$ $x[1]=s[1]\ \ y[1]=s[1]+g[1]$ $x[i]=max(x[i 1] 1,s[i]),y[i]=min(y[i 1]+1,s[i]+g[i])$ $然后这样能确保每一个区间都满足前面的区间,但不意味前面的区间满足后面的区间$ $倒过来也做一次,之后 阅读全文
posted @ 2020-05-05 17:04 倾叶子佮 阅读(116) 评论(0) 推荐(0)
摘要:$\color{Red}{网上的题解都是投机取巧啊,虽然也没错}$ $Ⅰ.先说一下投机取巧的方法$ $自己写几个例子会发现k很小的时候满足条件的n就变得很大$ $所以我们直接暴力从1判断到n,如果不满足就跳出循环$ $\color{Purple}{Ⅱ.正解(个人认为)}$ $因为n\pmod1=0$ 阅读全文
posted @ 2020-05-05 14:47 倾叶子佮 阅读(154) 评论(0) 推荐(0)
摘要:$状态很容易设计$ $设dp[i][j][u][v]表示放了i个1兵种和j个2兵种$ $然后u不会0说明末尾放了连续u个1兵种,v不为0说明末尾放了连续v个2兵种$ 阅读全文
posted @ 2020-05-05 13:50 倾叶子佮 阅读(160) 评论(0) 推荐(0)
摘要:$\color{Red}{描述}$ $在n n的棋盘上有m个K皇后,每个皇后可能被来自8个方向的其他皇后攻击$ $每个皇后只可能被(0 8)只皇后攻击,分别求出被(0 8)只皇后攻击的皇后数量$ $对于一个皇后来说,怎么找到上下左右对角线是否有皇后才是关键$ $如果把皇后按照x坐标分类装进vecto 阅读全文
posted @ 2020-05-05 10:57 倾叶子佮 阅读(159) 评论(0) 推荐(0)