04 2021 档案

摘要:这题的正确性就很神奇 给若干个矩形的宽,高都是1,给每层的限定宽度,问最少多少层。 一般的想法就是每层都尽量填,一直到填不下去为止。 一种做法是搞一个multiset 然后遍历每个矩形,往最大的那个层丢,不行就开新层 还有一种做法是,设一层 二分找能丢进去的矩形,直到不能丢进去,然后再设新层,新丢进 阅读全文
posted @ 2021-04-28 23:01 PdrEam 阅读(88) 评论(0) 推荐(0)
摘要:构造一个序列,让l到r里的数总和为s n<=500 解释代码 now就是说 假如当前位到r,是 len len-1 len-2 ... 3 2 1 就是不重复的最小花费,保证序列不重复 然后跟当前的s比较 如果s不够的填了,说明不能填,因为前面都已经最优填法了 然后找当前位置最优秀的填法 j枚举差值 阅读全文
posted @ 2021-04-28 09:55 PdrEam 阅读(147) 评论(0) 推荐(0)
摘要:找一个x,让它分为sum*2 找到sum 好了 const int N=2e5+7; int n,a[N]; map<int,int>mp; void solve(){ mp.clear(); cin>>n;int sum=0; for(int i=1;i<=n+2;++i){ cin>>a[i]; 阅读全文
posted @ 2021-04-27 22:36 PdrEam 阅读(112) 评论(0) 推荐(0)
摘要:大意就是 给两块 矩形的长方形,一次能砍去一半或者砍去1/3 就是说对边长质因数分解,划分为 2 3 其他 砍去一半 消去一个2 砍去1/3 把3转化为2 那么 其他 不一样就不行了 首先 得到 两个矩形 的3的个数 的差值 ,对两个边消去差值,将之转为2 然后 得到 两个矩形 的2的个数 的差值 阅读全文
posted @ 2021-04-27 19:52 PdrEam 阅读(61) 评论(0) 推荐(0)
摘要:l3-2 暴力预处理 30分写法 #include<bits/stdc++.h> #define inf 0x3f3f3f #define ll long long using namespace std; const ll N=1e5+7; ll n,a[N],ans[N],pos,m,maxx; 阅读全文
posted @ 2021-04-27 16:49 PdrEam 阅读(170) 评论(0) 推荐(0)
摘要:如果满足s[i]=s[j]并且s[i+1]=s[j+1],那么产生一个贡献 要求给你一个k表示只能使用前k个字母,构造出长度为n的字符串,使其总贡献最小。 a ab ac ad ... b bc bd be ... y yz z作为一一个长度为2的块不重复的零贡献周期 重复这个周期一定是最优的 为什 阅读全文
posted @ 2021-04-25 23:04 PdrEam 阅读(91) 评论(0) 推荐(1)
摘要:学习自该博主 https://blog.csdn.net/weixin_44178736/article/details/115916918?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101. 阅读全文
posted @ 2021-04-25 15:42 PdrEam 阅读(81) 评论(0) 推荐(0)
摘要:代码很简单 做的时候也知道是dp 但是就是推不出来,想不到 我他妈的废物一个 cin>>n>>m>>k; for(int i=1,x;i<=n;i++){ for(int j=1;j<m;j++){ scanf("%d",&x); r[i][j]=l[i][j+1]=x; } } for(int i 阅读全文
posted @ 2021-04-24 22:46 PdrEam 阅读(89) 评论(0) 推荐(0)
摘要:分解质因数,发现一个子区间内要保持互质关系才能满足 乘积==lcm 贪心思想找到当前点最远能到的点,此处可以用双指针 倍增优化查询时跳的速度。 记录2的倍数次跳转后到达的位置达到log的复杂度 #include<bits/stdc++.h> #define ll long long #define 阅读全文
posted @ 2021-04-23 21:14 PdrEam 阅读(161) 评论(0) 推荐(0)
摘要:题意: 如果一个序列被称为好序列,那么它不能被划分成两个值相等的序列(划分时可以跳着取) 问我们最少需要删去多少个值,使得序列变好,输出删去的个数以及哪些值 解法: 若序列和为奇数,那么已经是好序列 若序列和为偶数,那么背包判断是否可以分成两个值相等的序列 如果不可以,那么说明它也是好序列 如果可以 阅读全文
posted @ 2021-04-22 20:23 PdrEam 阅读(111) 评论(0) 推荐(0)
摘要:留下xx或者xxx x^x=0 xxx^=0^x=x 从左向右异或过去 结果先成为x,然后成为0,最后变成x #include<bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f using namespace std; const 阅读全文
posted @ 2021-04-22 19:18 PdrEam 阅读(151) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> #define ll long long using namespace std; const ll mod = 1e9+7; const ll maxn = 1e5+10; ll n,m,k; ll ans[maxn],cnt[maxn],res=0 阅读全文
posted @ 2021-04-21 18:57 PdrEam 阅读(59) 评论(0) 推荐(0)
摘要:经典莫队 解释一下 2x-len x为超限的个数, len-x为好的个数 好块能容纳的个数为 len-x+1 剩下不能容纳的超限数的个数为x-(len-x+1) 单独划走一个是最优秀的 再加上 好的那块 就是2*x-len #include<bits/stdc++.h> #define ll lon 阅读全文
posted @ 2021-04-21 14:58 PdrEam 阅读(88) 评论(0) 推荐(0)
摘要:https://ac.nowcoder.com/acm/contest/9854/F #include<bits/stdc++.h> #define inf 0x3f3f3f3f using namespace std; typedef long long LL; const LL N=1e5+7; 阅读全文
posted @ 2021-04-14 14:18 PdrEam 阅读(61) 评论(0) 推荐(0)
摘要:https://ac.nowcoder.com/acm/contest/13175/F A需要满足任意的前导p个数能p|a1a2...ap 给火柴个数,问能拼出的最大的个数是多少 参考题解:https://blog.nowcoder.net/n/1a8a5d3d54e947c485ac6e1b472 阅读全文
posted @ 2021-04-01 13:02 PdrEam 阅读(87) 评论(0) 推荐(0)
摘要:状态压缩,比较相同状态取数 https://ac.nowcoder.com/acm/contest/13175/E #include<bits/stdc++.h> #define inf 1e18 #define ll long long #define MAX 1000001 const ll N 阅读全文
posted @ 2021-04-01 10:51 PdrEam 阅读(51) 评论(0) 推荐(0)