08 2018 档案

数位dp
摘要:数位dp:f[i][j] 表示i位数满足j的情况下的个数,然后用记忆化搜索的写法来解决转移和统计的问题。 HDU3555 Bomb 题意:求1到n中含49的数的个数。 思路:·pos:当前位数。 ·st:高位状态(st=0:前几位中没有49;st=1:前一位是4;st=2:前几位中有49)。 ·fl 阅读全文

posted @ 2018-08-31 12:34 solvit 阅读(227) 评论(0) 推荐(1)

线段树区间更新
摘要:区间更新:运用延迟标记(或则说是懒惰标记),简单说就是每次更新的时候不要更新到底,运用延迟标记使得更新延迟到下次需要更新或者询问的时候。 HDU1698 Just a Hook 线段树功能:update成段区间更新,由于query只查询总区间,所以直接输出1结点(根节点)。 #include<bit 阅读全文

posted @ 2018-08-30 20:10 solvit 阅读(181) 评论(0) 推荐(0)

线段树单点更新
摘要:单点更新:最基础的线段树,只更新叶子结点,然后用PushUp函数将信息更新上来。 HDU1166 敌兵布阵 线段树功能:update单点增减,query区间求和。 #include<bits/stdc++.h> using namespace std; #define lson l, mid, ro 阅读全文

posted @ 2018-08-30 13:39 solvit 阅读(344) 评论(0) 推荐(0)

2018 “百度之星”程序设计大赛 - 复赛
摘要:1001 没有兄弟的舞会 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 100005; int t,n; int a[maxn],fa[maxn]; struct node { 阅读全文

posted @ 2018-08-30 13:38 solvit 阅读(267) 评论(0) 推荐(0)

线段树个人代码风格
摘要:· maxn是题目所给的最大区间,即数据范围,当然有时候会做离散化。结点数要开4*maxn,准确地说是大于maxn的最小的2^x的两倍。 · lson和rson分别表示节点的左儿子和右儿子。 · PushUp(int root)是把当前节点的信息更新到父亲结点。 · PushDown(int roo 阅读全文

posted @ 2018-08-30 12:40 solvit 阅读(148) 评论(0) 推荐(0)

Codeforces Round #506 (Div. 3) E
摘要:Codeforces Round #506 (Div. 3) E dfs+贪心 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 200005; int n,u,v; int ans 阅读全文

posted @ 2018-08-28 18:18 solvit 阅读(214) 评论(0) 推荐(0)

HDU6438 Buy and Resell
摘要:HDU6438 Buy and Resell 比较经典的贪心问题了 爬山 or 堆 ? #include <bits/stdc++.h> using namespace std; const int maxn = 100005; typedef long long ll; struct goods 阅读全文

posted @ 2018-08-26 12:04 solvit 阅读(168) 评论(0) 推荐(0)

单调队列优化和二进制优化的多重背包模板
摘要:多重背包 F[i][j]表示对容量为j的背包,处理完前i种物品后,背包内物品可达到的最大总价值。 num[i]表示第i种物品的数量,cost[i]表示第i种物品的花费,value[i]表示第i种物品的价值。 记mi[i] = min(num[i], j / cost[i])。 放入背包的第i种物品的 阅读全文

posted @ 2018-08-24 16:30 solvit 阅读(317) 评论(0) 推荐(0)

HDU6424 Rikka with Time Complexity
摘要:HDU6424 Rikka with Time Complexity 数学题~(真的数学题) #include <bits/stdc++.h> #define mp(_,__) make_pair(_,__) using namespace std; int T,n,m; int a[5],b[5] 阅读全文

posted @ 2018-08-21 09:50 solvit 阅读(347) 评论(2) 推荐(0)

HDU6415 Rikka with Nash Equilibrium
摘要:HDU6415 Rikka with Nash Equilibrium 找规律 + 大数 由于规律会被取模破坏,所以用了java 找出规律的思路是: 对于一个n*m的矩阵构造,我先考虑n*1的构造,很容易知道它是n!种方法。然后对于n*2的矩阵构造,就是在n*1的矩阵中新加入n个元素的排列组合,当然 阅读全文

posted @ 2018-08-20 18:31 solvit 阅读(681) 评论(6) 推荐(0)

BZOJ1012: [JSOI2008]最大数maxnumber
摘要:BZOJ1012: [JSOI2008]最大数maxnumber 单调栈 维护一个单调下降的单调栈,栈里面维护的是下标 二分查找答案 /************************************************************** Problem: 1012 User: 阅读全文

posted @ 2018-08-20 16:56 solvit 阅读(229) 评论(0) 推荐(0)

BZOJ2660: [Beijing wc2012]最多的方案
摘要:BZOJ2660: [Beijing wc2012]最多的方案 记忆化暴搜+剪枝 一个优秀的剪枝: 当对于当前值处理第i位斐波那契数时,如果它大于第i+1位斐波那契数,对于第i位斐波那契数不取的情况就不再继续搜索下去。 因为对于当前值无法用第1位到第i-1位斐波那契数求和得到。(f[1] + f[2 阅读全文

posted @ 2018-08-20 09:45 solvit 阅读(138) 评论(0) 推荐(0)

读入优化和输出优化模板
摘要:cin << scanf < cin(关闭流同步) < read << fread c++入门: #include<bits/stdc++.h> using namespace std; int a; int main() { cin>>a; cout<<a<<endl; return 0; } c 阅读全文

posted @ 2018-08-19 15:31 solvit 阅读(623) 评论(0) 推荐(0)

BZOJ1089: [SCOI2003]严格n元树
摘要:BZOJ1089: [SCOI2003]严格n元树 dp+快速幂+高精度(这里用了java) f[i] 表示深度小于等于i的严格n元树的种类数 ans = f[d] - f[d-1] f[0] = 1 f[i] = f[i-1]n + 1 转移式考虑: 对于深度为i-1的严格n元树,我们考虑将它加在 阅读全文

posted @ 2018-08-19 14:28 solvit 阅读(181) 评论(0) 推荐(0)

2018 “百度之星”程序设计大赛 - 初赛(B)
摘要:rank 264, 三题水过 ~ hdu6380_degree #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 200005; int in[maxn]; int n,m,k; 阅读全文

posted @ 2018-08-19 11:24 solvit 阅读(224) 评论(0) 推荐(0)

导航