摘要:输入输出模板: __int128无法使用cin和cout进行输入输出,所以只能自己写一个输入输出的模板: #include <bits/stdc++.h> using namespace std; void scan(__int128 &x)//输入 { x = 0; int f = 1; char
阅读全文
摘要:HDU4762 Cut the Cake 思路:公式:n/m(n-1) //package acm; import java.awt.Container; import java.awt.geom.AffineTransform; import java.math.*; import java.ut
阅读全文
摘要:Qsort,Sort,Stable_sort,Partial_sort,List::sort 参考
阅读全文
摘要:模板: #include<bits/stdc++.h> using namespace std; const int MAXN = 110; const int INF = 0xffffff0; int temp,Map[MAXN][MAXN],Dist[MAXN][MAXN],pre[MAXN][
阅读全文
摘要:莫比乌斯函数: void get_mu(int n) { mu[1]=1; for(int i=2;i<=n;i++) { if(!vis[i]){prim[++cnt]=i;mu[i]=-1;} for(int j=1;j<=cnt&&prim[j]*i<=n;j++) { vis[prim[j]
阅读全文
摘要:A An Olympian Math Problem #include <bits/stdc++.h> using namespace std; typedef long long ll; ll T,n; int main(){ scanf("%lld",&T); while(T--){ scanf
阅读全文
摘要:A Gudako and Ritsuka B Call of Accepted C Convex Hull D Made In Heaven #include <bits/stdc++.h> using namespace std; const int MM = 1e5+5; const int I
阅读全文
摘要:A Hard to prepare #include <bits/stdc++.h> using namespace std; #define N 1000005 long long mod = 1e9 + 7; long long power(long long a,long long b){ a
阅读全文
摘要:A Magic Mirror #include <bits/stdc++.h> using namespace std; char s[20]; int main() { int T; scanf("%d",&T); cin.ignore(); while(T--){ gets(s); int le
阅读全文
摘要:基础: set是关联容器,set中每个元素的值都是唯一的,系统能够根据元素的值自动进行排序。set中数元素的值并不能直接被改变。STL中还有一些标准关联容器multiset、map 和 multimap 等,这些关联容器内部均是采用红黑树实现的。 set特点: ①、map和set的插入删除效率比其他
阅读全文
摘要:Tarjan 基础 dfn[i]: 在dfs中该节点被搜索的次序(时间戳)。 low[i]: 为i或i的子树能够追溯到的最早的栈中节点的次序号。 当 dfn[i] == low[i] 时,为i或i的子树可以构成一个强连通分量。 void tarjan(int x) { id++; dfn[x] =
阅读全文
摘要:·离线快速区间求最值,O(nlogn)预处理,O(1)查询。 ·dp[i][j]表示第i位带i+2^j-1位的区间最大值或区间最小值。 ·预处理的转移方程为 dp[i][j]=max(dp[i][j-1],dp[i+(1<<(j-1))][j-1]; 将区间一分为二。 ·查询的时候:l-r区间查询,
阅读全文
摘要:数位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
阅读全文