- 博客(50)
- 收藏
- 关注
转载 Codeforces Round #535 (Div. 3)
A#include<bits/stdc++.h>using namespace std;#define mod 1000000009typedef long long ll;int main(){ int q; cin>>q; ll a,b,c,d; while(q--) { ...
2019-01-31 14:15:00
122
转载 Codeforces Round #524 (Div. 2) C Masha and two friends
题意:在n*m的矩形中,每次给你两个两个矩形,第一次涂成白色,第二次涂成黑色, 问最后的白色和黑色色块有多少个?题解:从题目中,我们可以知道,n*m的矩形中,白色的个数就是a*b/2+((a*b)&1); 而黑色就是n*m-白色的个数 然后怎么求出给定矩形中黑白色的个数呢?我们并不知道其中黑色和白色的个数那个多 这里有两...
2019-01-31 13:32:00
123
转载 dfs
题目:代码:#include<iostream>#include<algorithm>#include<string>#include<map>#include<vector>#include<cmath>#include<string.h>#include<...
2018-12-02 15:02:00
149
转载 bfs模板
模板:#include<bits/stdc++.h>using namespace std;typedef long long ll;#define MAX 1010#define INF 0x3f3f3f3fint n,m;int T;char g[MAX][MAX];bool vis[MAX][MAX];int fire[M...
2018-12-01 22:21:00
126
转载 cf:c题
题目:代码:#include<iostream>#include<algorithm>#include<vector>#include<string>#include<math.h>const int max_=1e5+5;using namespace std;vector<i...
2018-11-30 22:17:00
117
转载 交换一次最长连续字符的长度
题目:分析:记录GSG这样的结构,记录左右两边的连续G的长度代码:#include<iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<string>#include<vector>...
2018-11-29 16:09:00
152
转载 区间节点的lca
题目hdu5266分析:多节点的LCA就是dfs序中最大最小两个节点的LCA。所以只要每次维持给出节点的dfs序的最大最小,然后就是两点的LCA代码:rmq的st+lca的倍增#include<stdio.h>#include<iostream>#include<algorithm>#include<strin...
2018-11-28 22:26:00
278
转载 Dijkstra的优先队列
模板#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<stack>#include<cstdio>#include<map...
2018-11-26 18:34:00
162
转载 博弈的dfs
题目:链接:https://ac.nowcoder.com/acm/contest/283/D来源:牛客网小西买了一堆肥宅快乐水和肥宅快乐茶,准备和室友比谁更肥宅。 快乐水有A瓶,快乐茶B瓶。 小西和室友的规则是这样的: 1. 小西先手,轮流到每个人的回合,每个回合只能喝剩余数量较多的饮料 2. 满足规则1的同时,每次只能喝另一种饮料剩余数量的正整...
2018-11-26 15:42:00
221
转载 组合数学
题目:很好的组合数学。代码:#include<stdio.h>#include<iostream>#include<math.h>#include<algorithm>#include<map>using namespace std;typedef long long ll;con...
2018-11-26 15:18:00
80
转载 欧拉表
题目:UVa10820题意:给出n求,n以内的有序数对(x, y)互素的对数。分析:设(x>y)即sum[ n ]表示符合的对数,即答案就数2*sum[n]+1,1是符合条件的(1,1)这对数。即打个欧拉表就可以解决。代码:#include<stdio.h>#include<iostream>#include<...
2018-11-24 14:48:00
269
转载 唯一分解定理应用+组合数学
题目:UVA 1635题目大意: 对于给定的n个数a1,a2,a3....an,一次求出相邻两个数之和,将得到一个新的数列。重复上述操作,最后结果将变成一个数。问这个数除以m的余数与那些数无关?例如n=3,m=2时,第一次求和结果a1+a2,a2+a3,在求和a1+2a2+a3,它除以2的余数和a2无关,1<=n<=10^5,2<=m<=10^9分析...
2018-11-24 13:21:00
128
转载 GCD 与XOR
题目:UVA12716题意:问 gcd(i,j) = i ^ j 的对数(j <=i <= N ) N的范围为30000000,有10000组样例分析: 有几个结论:(1)若 a xor b = c,则 a xor c = b。 (2)a - b <= a xor b,(a >= b) (3)若 gcd(a,b...
2018-11-22 17:06:00
253
转载 二分图的模板
博客:匈牙利算法模板:#include<bits/stdc++.h>#define MAXN 9999using namespace std;int nx,ny;//nx表示二分图左边顶点的个数,ny表示二分图右边顶点的个数int m;//m代表边的条数int cx[MAXN],cy[MAXN];//如果有cx[i]=j,则必有cy[j]=...
2018-11-21 18:45:00
142
转载 唯一分解定理应用
UVA 10791题意:输入n,求最少两个数,使得他们的最小公倍数为n,使他们的和最小。分析:根据唯一分解定理,可以得出 N= p1^n1 * p2^n2 *...* pn^nn即:当把pi^n1看成整体时和最小。代码:#include<stdio.h>#include<iostream>#include<algori...
2018-11-17 19:18:00
169
转载 唯一分解定理+组合数学
UVA 10375题意:P Q R S,求C(p,q)/C(r,s).两种方法:第一种,数据比较水,一乘一除,不会溢出。#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;int main(){ dou...
2018-11-17 16:09:00
130
转载 扩欧几里得+暴力
给出一个数列:x2=(a*x1+b)%10001;的奇数项,求出偶数项。题目:UVA 12169分析:x2 = (a * x1 + b) % 10001;x3= (a * x2 + b) % 10001;联立2个式子x3 = (a * (a * x1 + b) % 10001 + b ) % 10001;x3 = (a * (a * x1 + b) + b)...
2018-11-16 19:24:00
90
转载 快速幂+斐波那契数列
题意:给出 a, b ,n。求 f(a^b)%n的值。f()是斐波那契数列。UVA 11582代码:#include<stdio.h>#include<iostream>#include<algorithm>#include<bits/stdc++.h>typedef unsigned long lo...
2018-11-16 15:54:00
113
转载 线段树模板
博客:模板:成段更新:#include <cstdio>#include <algorithm>using namespace std;#define LL long long#define lson l , m , rt << 1#define rson m + 1 , r , rt << 1 | ...
2018-11-12 22:15:00
72
转载 tire 树入门
博客:模板:前缀是否出现:/* trie tree的储存方式:将字母储存在边上,边的节点连接与它相连的字母 trie[rt][x]=tot:rt是上个节点编号,x是字母,tot是下个节点编号 */ #include<cstdio>#include<iostream>#include<algorithm>...
2018-11-11 17:41:00
140
转载 string中的stringstream
博客:加速:ios::sync_with_stdio(false);举个例子:題目:输入的第一行有一个数字 N 代表接下來有 N 行资料,每一行资料里有不固定个数的整数(最多20个,每行最大200个字元),编程將每行的总和打印出來。输入:31 2 320 17 23 54 77 60111 222 333 444 555 666 777 888 999输出:...
2018-11-11 17:34:00
69
转载 manacher算法
博客:模版:#include<stdio.h>#include<string.h>#include<algorithm>#include<map>using namespace std;const int maxn = 2e5 + 10;char s[maxn], sNew[maxn<<1...
2018-11-10 10:47:00
62
转载 拓展KMP求回文串
题目:hdu3613;题意:有26字母对应的价值,然后给出以个串,把它分成两段字串,如果字串是回文串,串的价值就是每个字符和,不是就为0。求最大价值。博客分析:拓展KMP的应用求回文字串。#include<iostream>#include<stdio.h>#include<algorithm>#include<s...
2018-11-07 11:57:00
171
转载 字符串最小表示法
模板:int min_max_express(char *s,int len,bool flag){//最小表示法和最大表示法写到一块儿了 int i=0,j=1,k=0; while(i<len&&j<len&&k<len){//一次就能够找着 int t=s[(j+k)%len]...
2018-11-06 19:44:00
92
转载 KMP模板
这里介绍几个说的比较好的博客:KMP博客:KMP算法的推算拓展KMP的介绍:next数组对最小循环节的运用:接下的就是模板:求模式串第一次在主串出现的位置 or 匹配是否在主串出现过 :#include<bits/stdc++.h>const int maxn = 1e6 + 10;char mo[maxn], str[maxn];//...
2018-11-05 16:03:00
62
转载 KMP2
poj 2752#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>using namespace std;const int max_=4e5+5;char str[max_];int ans[max_],nex...
2018-11-05 15:49:00
166
转载 KMP
博客1:KMP的介绍和解释博客2:next数组的应用代码:hdu 3336#include<stdio.h>#include<algorithm>#include<iostream>using namespace std;const int max_=2e5+2;const int mod=1e4+7;int...
2018-10-30 21:30:00
80
转载 几何问题 poj 1408
参考博客:用向量积求线段焦点证明:首先,我们设 (AD向量 × AC向量) 为 multi(ADC) ; 那么 S三角形ADC = multi(ADC)/2 。由三角形DPD1 与 三角形CPC1 相似;可得 |DP| / |PC| = |DD1| / |CC1| = multi(ADB) × multi(ACB) 。|DP| / |PC| = (xD - xP) /...
2018-10-19 18:58:00
77
转载 树上倍增 hdu 2586
参考博客:代码:#include<stdio.h>#include<iostream>#include<algorithm>#include<math.h>#include<string.h>using namespace std;const int max_=8e4+1;int dept...
2018-10-19 14:39:00
76
转载 hdu 1969 二分
参考博客:题意:一个人要办生日part,有f个馅饼,n个朋友要来参加他的生日part,我们要做的是让着f个馅饼平均分给他的朋友,形状可以不一样,但是大小要一样,也就是说馅饼的体积要一样,这馅饼的高都为1。这个简单,但是题目要求不能分从一块一块的凑出来的馅饼。代码:#include<stdio.h>#include<cmath>#de...
2018-10-16 22:37:00
192
转载 poj 1905 图形推算+二分
参考博客:题意:一根两端固定在两面墙上的杆 受热弯曲后变弯曲求前后两个状态的杆的中点位置的距离分析:见博客代码:#include<stdio.h>#include<iostream>#include<algorithm>#include<math.h>#include<string.h>...
2018-10-16 20:34:00
56
转载 poj 3258 二分
题意:看了很久才懂,有n个石头,去掉m个后,求跳两个石头或石头和岸边距离最小的最大值,就是至少要跳的距离的最大。参考博客:代码:#include<stdio.h>#include<iostream>#include<algorithm>#include<math.h>#include<string.h&...
2018-10-16 18:17:00
63
转载 poj 1019
大致题意:有一串数字串,其规律为1 12 123 1234 12345 123456 1234567 12345678 123456789 12345678910 1234567891011 123456789101112······k输入位置n,计算这一串数字第n位是什么数字,注意是数字,不是数!例如12345678910的第10位是1,而不是10,第11位是0,也不是10...
2018-10-15 20:11:00
109
转载 hdu 3486
题意:n个人,每个人的价格a[ i ] ,求最少分几组,每组取一个人,多出来的人就不考虑,使得这取出人的价格大于k。(每组人数一样)分析:每组取一个人,那这个人肯定是这组最大的,枚举多少组就可以了。代码:#include<stdio.h>#include<iostream>#include<string.h>#inclu...
2018-10-15 15:58:00
192
转载 hud 3183
题意:给出n个数字的字符串,要求你删除m个数字后,得到的数字最小。分析:删除m个,就是选n-m个,而且,选的第一个数,肯定在(0—(n-m-1))中,第二个就在(第一个的下一位—(n-m-2)中。就这样,RMQ选出最小就可以了。代码:#include<stdio.h>#include<iostream>#include<math.h&...
2018-10-15 14:36:00
72
转载 树状数组
概念参考博客:http://www.cnblogs.com/George1994/p/7710886.html树状数组或者二叉索引树也称作Binary Indexed Tree,又叫做Fenwick树;它的查询和修改的时间复杂度都是log(n),空间复杂度则为O(n),这是因为树状数组通过将线性结构转化成树状结构,从而进行跳跃式扫描。通常使用在高效的计算数列的前缀和,区间和。...
2018-10-15 14:24:00
71
转载 构造+数位dp
参考博客:题目链接:题意:给定正整数a,b,k,你的任务是在所有满足a<=n<=b中的整数n中,统计有多少个满足n自身是k的倍数,且n的各位数字之和也是k的倍数。【思路】 这种题的固定套路是设f(x)为[0,x]中满足题意的解的个数,那么本题的答案就是f(b)-f(a-1)。关键问题就是求解f函数。因为数据范围太大,无法穷举,所以这道题要用分段求和的思想来...
2018-10-15 13:09:00
109
转载 树状dp
参考博客:题目链接:题意:给出n-1条边,构造成一颗树,求:1~n节点最远的点的距离。分析: 离该节点距离最远:有两条路走,(设该点为 now) 1、往自己的子节点走,遍历就可以得到最大值。 2、先往自己的父节点走,那么问题就变成了离父节点的最长距离,以此类推,就是一个dp的问题。 求离父节点的最...
2018-10-08 18:12:00
77
转载 树状数组+离散化
参考博客:题目链接:题意:给出n条平行x或y轴的线段,求线段的交点。分析:将 平行 x 轴的直线离散化,只记录它的端点,排序,然后就用树状数组查询。将 平行y的直线按x 的大小排序,遍历,然后就只考虑它左边的点,遇到是左端点的树状数组就在那个点的y处加一,遇到右端点就在其y处减1。因为它右端点都在直线的左边,就说明左端点也在,就减一抵消之前的加一。代码:...
2018-10-07 23:41:00
223
转载 rmq +二分暴力 hdu 5726
参考博客题意:n 个数字的数列,有m个询问:求出 L 到 R 的 gcd(最大公约数 ),然后问这整个序列中有多少个区间的 gcd 和这个一样。分析:L 到 R的gcd直接用RMQ的ST算法求,第二步,我们可以枚举左端点 i 从1-n,对每个i,二分右端点,计算每种gcd值的数量,因为如果左端点固定,gcd值随着右端点的往右,呈现单调不增,而且gcd值每次变化...
2018-10-06 16:45:00
105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人