
codeforces
GrittyB
这个作者很懒,什么都没留下…
展开
-
CF1313C2 Skyscrapers (hard version) -单调栈优化dp
给定一个数组A,构造一个数组B,满足,B先增再减(或者只增,只减), 且 bi原创 2022-07-08 17:36:43 · 291 阅读 · 0 评论 -
Codeforces Round #743 (Div. 2) 总结B,C
链接B题目要求;对于b组数中的每一个x,在a中找所有比x小的数的最小权值模拟办法:扫b,对于a,一直加到所有小于b的条件的,优先队列维护最小值/*new year!*/#include <iostream>#include <cstring>#include <string>#include<map>#include<queue>#include<set>#include<algorithm>#i原创 2022-01-29 17:55:06 · 942 阅读 · 0 评论 -
C.No More Inversions 回文,找规律
链接特性:非回文+回文部分难点:逆序的个数相同从样例开始去推一下,重点放在回文部分,研究它的逆序的个数容易发现,1 2343223432 把它翻转一下,43234这样的逆序的个数是相同的…非回文部分,从小到大排,回文部分从大到小排...原创 2022-01-28 20:39:28 · 262 阅读 · 0 评论 -
D. Treelabeling 二分图染色
链接/*I think*/#include <iostream>#include <cstring>#include <string>#include<map>#include<queue>#include<set>#include<algorithm>#include<cmath>#include<vector>#define debug(a) cout<<#a&l原创 2022-01-27 19:18:52 · 863 阅读 · 0 评论 -
D. Frog Traveler bfs优化
链接/*new year!*/#include <iostream>#include <cstring>#include <string>#include<map>#include<queue>#include<set>#include<algorithm>#include<cmath>#include<vector>#define debug(a) cout<<#a原创 2022-01-27 17:05:47 · 498 阅读 · 0 评论 -
C. BA-String 字符串字典序最小
链接对于a—(1)a----(2)a----(3)再中间插入b,形成几种字符串根据字典序排序的方案构成一个偏序关系不难发现,对于123块,有1>2>3可以看做一种变进制数每一位的权重为n1+1,n2+1,n3+1(1,2,3能放的个数+1 (因为0也算))#include <iostream>#include <cstring>#include <string>#include<map>#include<queue>原创 2022-01-20 13:34:14 · 670 阅读 · 0 评论 -
C. Permutation Cycle 置换,构造环
不难发现,这是个 i->pi的置换对于样例1,即为置换(6 1)(5 4 3 8 2)(9 7)题目即让构造ax + b y = nx个a次置换,y个b次置换ll exgcd(ll a, ll b, ll &x, ll &y){ if(!b){ x = 1, y = 0; return a; } int d = exgcd(b, a%b, y, x); y -= x*(a/b); return d; .原创 2022-01-15 15:30:39 · 376 阅读 · 0 评论 -
CF 1056D Decorate Apple Tree
题目大意:有一颗树,可以往节点上挂灯泡(有很多种颜色),定义一个happy节点:这颗节点子树的所有叶子节点所挂的灯泡颜色不同现在问你有1到n个happy节点,分别需要最小多少种颜色来装饰灯泡1.一个结点可以代表一颗子树,n个结点可以代表n个子树2.一个happy结点的cost为该子树的叶子结点数不难得到,k个happy结点,即用前k小的cost的结点可以dfs,得到所有结点的叶子结点,然后排序,从小到大输出即可const int N = 1e6+10;vector<int> .原创 2022-01-13 17:17:47 · 166 阅读 · 0 评论 -
Educational Codeforces Round 85 C.Circle of Monsters 贪心
最朴素的想法,枚举开始的点,一直按顺序往下(因为每次射击一个,总的花费是 总a[i] - 能够节省的b[i] ,在顺序的情况下,只有一个b[i]被浪费),每个点如果都被前bi-1影响,总花费就是所有的 max(a[i]-b[i-1],0), 断掉的地方,即让起始的地方增加量最小即可找min a[i] - max(a[i]-b[i-1],0)const int N = 3e5+10;ll a[N], b[N];void sov(){ ll n; cin >.原创 2022-01-12 10:48:23 · 158 阅读 · 0 评论 -
Secret Santa 模拟
传送门每个人i都想送礼物给a[i],i!=a[i],且结果b[i]从1~n,即错排,尽可能的让i送给a[i]贪心,先让第一个想送给a[i]的i送给a[i],剩下随便排再从头到尾扫一遍,让 送给自己的 i ,送给 本来想送给的 a[i],然后让之前送给 a[i]的 ii, 送给 i#include <iostream>#include <cstring>#include <string>#include<map>#include<queue原创 2022-01-02 17:01:06 · 376 阅读 · 0 评论 -
Divan and bitwise operations
链接原创 2022-01-02 10:28:36 · 105 阅读 · 0 评论 -
Educational Codeforces Round 117 D. X-Magic Pair 辗转运算
题目大意给出t组数据,每组数据给出a,b,x三个数对于a,b,可以分别作出两种操作a:=|a−b|b:=|a−b|求问,能否通过一系列操作,使a,b最终的数值满足a=x 或 b=x如果可以满足,输出YES,否则输出NO解题思路容易发现,对于 a > b , 每次因对 a 进行 操作 ,若 有解 即 a - p * b = x , 即 a % b = x%b , a <= b若 无解 ,运算 f ( b,a%b,x)注意 b==0 特判 a == x..原创 2021-11-23 14:11:20 · 279 阅读 · 0 评论