- 博客(22)
- 收藏
- 关注
原创 3.31总结
1.(1)给n个数,找到长度至少为k的段,使得平均数最大(2)给n个数,找到长度至少为k的段,使得中位数最大二分答案,数组处理,前缀和,区间最小2.(1)给n个数,相邻元素至少选一个,使得平均数最大(2)给n个数,相邻元素至少选一个,使得中位数最大二分答案,数组处理,状态机3.实数二分最好二分次数(100次),或者相对精度4.给定一棵树,点有点权,切k刀,使得最大权值连通块的最小值树形dp,二分,贪心5.P2824 [HEOI2016/TJOI20
2022-04-03 20:18:09
276
原创 C. Divan and bitwise operations
由于各位的贡献是独立的 ,可以分别考虑该位的贡献:若数组中某数第j位不为0,假设有k个数为1,则有n-k个数为0.设要从整个数组中取i个数组成集合,该集合第j位贡献为sum(C[k][p]*C[n-k][i-p],C[i][i-1]*2^(n-k),...,c[i][0]*2^(n-k))==2^(i)*2^(n-k)==#include<bits/stdc++.h>using namespace std;const int M = 1e9 + 7;typedef long lo
2022-03-21 21:48:19
713
原创 寒假第一天:贪心3
3. Luggage lockHIT Online Judge题意:有四个数排成一排,初始为 0 0 0 0,你可以对它们进行如下操作:(1)选取某段连续的数,集体+1(2)选取某段连续的数,集体-1其中的加减都在模n的意义下(n给定) , 即 0 - 1 = n - 1,n - 1 + 1 = 0给定a1,a2,a3,a4.问从初始状态变为a1,a2,a3,a4最小需要多少步?有多组数据,每组输入n作为模数, n <= 1000,最多有1e4组数据.思路:(1
2022-01-23 11:19:14
270
原创 寒假第一天:贪心2
2.D - Between Two Binary Strings (atcoder.jp) D- between two binary strings主要思考那个距离怎么解决,即怎么找出满足题意的介于s与t距离之间的串。题目的每个条件都不是没有用的,有时还需观察样例。对于两个串s,t属于集合(p,q)它们的0,1个数是相同的,考虑每个1所在位置。设s串中第i个1的位置是d1[i],t串中第i个1的位置是d2[i],对于s和t串,它们两个之间的...
2022-01-21 14:32:58
499
原创 寒假第一天:贪心1
1.第一题:Problem - B1 - Codeforces:Painting the Array I题意:输入一个长为n(1 <= n <= 1e5) 的序列ai,你要维护两个栈 B 和 C,初始都为空。 现在顺次扫描序列 ,对于每个ai:有两个操作:1. 要么将其压入 B 中2. 要么将其压入 C 中问: seg(B)+seg(C)的最小值是什么? 其中 seg(D)表示把序列 D 中相邻 且 相同的项合并后所剩的元素个数,比如 seg{1...
2022-01-21 10:49:32
278
原创 妙法一:二分打表查找
本质上就是一个DFS枚举的过程。但枚举集合时每个数枚举一边要2的46次方种情况,肯定超时。此时可以采用二分集合,对左半边集合枚举所有可以相加得到的整数.对于每一个小于W的整数,DFS右半边集合,然后二分查找左半边集合是否存在某个数可以使得左右半边相加为该整数,时间复杂度最多为1e8。...
2021-12-11 16:58:33
278
原创 POJ 失败大赏
#include<iostream>#include<cstring>#include<algorithm>#include<string>#include<vector>using namespace std;const int N = 500,M = 250;int n,e[N],ne[N],h[M],idx;string ans;vector<string> w;bool st[M];void init(.
2021-12-10 16:01:40
560
原创 2021-11-28上课笔记
1.HASH栈2.CF1574D3.USACO12DECKMP两大性质4.BOI20095.POI20066.NOI20147.POI20058.HNOI2008
2021-11-28 16:24:46
158
原创 2021-11-21上课笔记
二分:1.P1485:维护区间和(低次的话维护后缀和)2.二分模板3.三分模板4.贪心:有想法后考虑把想法证明(希望。。。后考虑能不能就这样)5.单调栈6.Largest Submatrix7.Problem - E - Codeforces8.Problem - 5037 (hdu.edu.cn)9.3258 -- River Hopscotch (poj.org)10.Problem - 3714 (hdu.edu.cn)11....
2021-11-21 16:47:32
1585
原创 2021—11—15 晚题
1.C题 ACM@HIT2021 秋季周训(一) - Virtual Judge (vjudge.net)这题贪心策略是维护一个值,即每一周的最小成本,这个值等于min(该周的制作成本, 前一周的最小成本 + S),递推并且不需要数组。 #include<iostream>using namespace std;int main(void){ int N,s; cin >> N >> s; long long sum=0;...
2021-11-15 19:18:34
377
原创 2021—10—31 上课笔记
”简单“DP1.股票买卖(P2569 [SCOI2010]股票交易):2.区间DP:(能量项链)3.树形DP(没有上司的舞会)(树的直径):某一结点的最长分成两部分:它向下与它到根节点加上根节点的最大长度(毛毛虫)4.背包问题:完全背包:反向改正向分组背包:物品个数有限(二进制优化)若要求恰好装满(非装满全赋值为正无穷)6.状压DP:二进制表状态(不能。。。的玉米田)(互不侵犯):DP[i][j][num]Misunderstood … Missing:.
2021-10-31 16:27:07
122
原创 2021-10-24 上课笔记
合并果子 o(N)做法(P2827)STL:map(圆怎么做?),set,multiyset,堆并查集反向思路点分治(或dsu on tree)(P4149):启发式合并set树点分治(树的重心怎么搞?)线段树拆点并查集,镜像并查集(P2024)P1503dfs序双哈希(KMP)(HDU1686):2020ICPC济南 A Matrix Equationnoip2017 A 小凯的疑惑(打表找规律)模拟 P2831 [NOIP2016 提高组] 愤怒的小鸟.
2021-10-24 20:11:36
50
原创 人生第一个成功百行代码
#include<iostream>using namespace std;typedef struct Node{ int coe; int index; Node *next;}node,*nodeptr;nodeptr add(nodeptr head1,nodeptr head2);void show(nodeptr head3);void del(nodeptr k);void addall(nodeptr a[],int end);i.
2021-09-26 20:33:43
116
1
原创 Eratosthenes筛法
#include<iostream>#include<algorithm>#include<cmath>using namespace std;int main(void){ long N; cin >> N; long a[N+1]; int book[N+1]={0}; for(long i=1;i<=N;i++) a[i]=i; long j; for(long i.
2021-09-23 19:47:10
62
原创 最小正子序列问题
思路:将序列累计求和并存入数组,将数组排序,计算相邻两个值之差,若差大于0且在原数组中两数前后顺序相同,则记录下两数之差,遍历一遍新数组,若有符合条件的差小于前一个,则将最小差记录下来如:9,-3,-5,-7,11,7 累加得:0,9,6,1,-6,5,12排序后得,-6,0,1,5,6,9,12,后一位减前一位有 6,1,4,1,3,3因为在原数组中,-6在0后,顾不可以,1在0后,顾可以,所以最小值为1public static class Node{ public Node...
2021-09-23 18:58:09
113
原创 Horner 法则
#include<iostream>using namespace std;int F(int a[],int x,int n);int main(void){ int N,X; cin >> N >> X; int A[N+1]; for(int i=0;i<=N;i++){ cin >> A[i]; } cout << F(A,X,N); return 0.
2021-09-23 16:17:46
108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人