笔记
kuzuma
这个作者很懒,什么都没留下…
展开
-
程序人生-Hello’s P2P
无原创 2022-11-20 22:51:05 · 435 阅读 · 1 评论 -
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 · 280 阅读 · 0 评论 -
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 · 717 阅读 · 0 评论 -
妙法一:二分打表查找
本质上就是一个DFS枚举的过程。但枚举集合时每个数枚举一边要2的46次方种情况,肯定超时。此时可以采用二分集合,对左半边集合枚举所有可以相加得到的整数.对于每一个小于W的整数,DFS右半边集合,然后二分查找左半边集合是否存在某个数可以使得左右半边相加为该整数,时间复杂度最多为1e8。...原创 2021-12-11 16:58:33 · 278 阅读 · 0 评论 -
DFS剪枝有感
剪枝是未来的预估,是一种用当前已知量来表示,预测未知量的方法。原创 2021-12-10 19:12:46 · 280 阅读 · 0 评论 -
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 · 564 阅读 · 0 评论 -
2021年11月28日有感
1.区间问题可转化为两段区间相减原创 2021-11-28 19:50:29 · 54 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 · 128 阅读 · 0 评论 -
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 · 51 阅读 · 0 评论 -
2021-10-02
关于哈夫曼树最优性的证明原创 2021-10-02 09:58:58 · 56 阅读 · 0 评论 -
人生第一个成功百行代码
#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 · 63 阅读 · 0 评论 -
最小正子序列问题
思路:将序列累计求和并存入数组,将数组排序,计算相邻两个值之差,若差大于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 阅读 · 0 评论 -
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 阅读 · 0 评论 -
2021-08-31
模拟数表大失败这是我写的这是输出这是答案呜呜呜原创 2021-08-31 11:50:44 · 49 阅读 · 0 评论