摘要:数位dp:f[i][j] 表示i位数满足j的情况下的个数,然后用记忆化搜索的写法来解决转移和统计的问题。 HDU3555 Bomb 题意:求1到n中含49的数的个数。 思路:·pos:当前位数。 ·st:高位状态(st=0:前几位中没有49;st=1:前一位是4;st=2:前几位中有49)。 ·fl
阅读全文
摘要:区间更新:运用延迟标记(或则说是懒惰标记),简单说就是每次更新的时候不要更新到底,运用延迟标记使得更新延迟到下次需要更新或者询问的时候。 HDU1698 Just a Hook 线段树功能:update成段区间更新,由于query只查询总区间,所以直接输出1结点(根节点)。 #include<bit
阅读全文
摘要:单点更新:最基础的线段树,只更新叶子结点,然后用PushUp函数将信息更新上来。 HDU1166 敌兵布阵 线段树功能:update单点增减,query区间求和。 #include<bits/stdc++.h> using namespace std; #define lson l, mid, ro
阅读全文
摘要: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 {
阅读全文
摘要:· maxn是题目所给的最大区间,即数据范围,当然有时候会做离散化。结点数要开4*maxn,准确地说是大于maxn的最小的2^x的两倍。 · lson和rson分别表示节点的左儿子和右儿子。 · PushUp(int root)是把当前节点的信息更新到父亲结点。 · PushDown(int roo
阅读全文
摘要: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
阅读全文
摘要:HDU6438 Buy and Resell 比较经典的贪心问题了 爬山 or 堆 ? #include <bits/stdc++.h> using namespace std; const int maxn = 100005; typedef long long ll; struct goods
阅读全文
摘要:多重背包 F[i][j]表示对容量为j的背包,处理完前i种物品后,背包内物品可达到的最大总价值。 num[i]表示第i种物品的数量,cost[i]表示第i种物品的花费,value[i]表示第i种物品的价值。 记mi[i] = min(num[i], j / cost[i])。 放入背包的第i种物品的
阅读全文
摘要: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]
阅读全文
摘要:HDU6415 Rikka with Nash Equilibrium 找规律 + 大数 由于规律会被取模破坏,所以用了java 找出规律的思路是: 对于一个n*m的矩阵构造,我先考虑n*1的构造,很容易知道它是n!种方法。然后对于n*2的矩阵构造,就是在n*1的矩阵中新加入n个元素的排列组合,当然
阅读全文
摘要:BZOJ1012: [JSOI2008]最大数maxnumber 单调栈 维护一个单调下降的单调栈,栈里面维护的是下标 二分查找答案 /************************************************************** Problem: 1012 User:
阅读全文
摘要:BZOJ2660: [Beijing wc2012]最多的方案 记忆化暴搜+剪枝 一个优秀的剪枝: 当对于当前值处理第i位斐波那契数时,如果它大于第i+1位斐波那契数,对于第i位斐波那契数不取的情况就不再继续搜索下去。 因为对于当前值无法用第1位到第i-1位斐波那契数求和得到。(f[1] + f[2
阅读全文
摘要: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
阅读全文
摘要: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元树,我们考虑将它加在
阅读全文
摘要: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;
阅读全文