自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 SPOJ QTREE2 Query on a tree II

LCA#include<cstdio>#include<queue>#include<iostream>#include<cmath>#include<cstring>using namespace std;#define ll long longconst int size=10010;int f[size][20],...

2019-11-29 22:33:12 80

原创 天才ACM

倍增+归并排序1.merge函数中不能直接在原数组上改变,因为这次check()可能失败,必须额外用一个数组来存。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;#define ll long longl...

2019-11-27 19:49:56 92

原创 递归实现排列型枚举

#include<cstdio>#include<iostream>#include<cstring>#include<vector>using namespace std;#define ll long longint n;vector<int> path;void dfs( int u,int state){ if...

2019-11-25 00:26:25 89

原创 递归实现组合数枚举

#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define ll long longint n,m;int lowbit(int x){ return x&(-x);}int cal(int n){ int c=0; ...

2019-11-25 00:14:32 156

原创 递归实现组合型枚举

#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define ll long longint n;void dfs( int u,int state){ if(u==n) { for(int i=0;i<n;i++) { if(s...

2019-11-24 23:48:34 73

原创 最短哈密顿路

状压dp(位运算应用)#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define ll long longint map[30][30];int dp[1<<21][21];int main(){ int n; cin&...

2019-11-24 23:41:30 212

原创 快速幂

#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define ll long longint main(){ ll a,b,p; cin>>a>>b>>p; ll s=1; while(b) { if(b&...

2019-11-24 23:10:59 40

原创 生日蛋糕 POJ1190

确定搜索状态:第几层当前体积当前表面积上一层高度和半径(可以用数组存)#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<cmath>using namespace std;int N,m;int ans=0x...

2019-11-23 00:19:57 121

原创 Sticks POJ - 1011

暴搜+剪枝错误做法(类似于小猫爬山):确定搜索状态:当前已经分配好的小木棍当前的木棒个数每个木棒的长度#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int cnt[70];int a[70];in...

2019-11-21 22:18:18 62

原创 Sudoku POJ - 3074

dfs#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int N=9;int ones[1<<N],map[1<<N];int row[N],col[N],cell[3][3];char str[100]; in...

2019-11-21 14:44:44 93

原创 小猫爬山

1≤N≤18, n很小,可以考虑暴搜1≤Ci≤W≤108 很像一个背包问题但w很大#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cstring>#define ll long longusing name...

2019-11-21 13:26:25 126

原创 可达性统计

bitset topsort#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<bitset>#include<queue>using namespace std;int deg[30010];int...

2019-11-21 12:47:34 127

原创 Codeforces Round #515 (Div. 3) B. Heaters

题目大意 房间为一条直线长度为n 如果pos位置有加热器并且打开则能加热[pos - r + 1, pos + r - 1]区域 告诉你哪些位置有加热器0无1有 问最少开启多少加热器能把整个房间加热i遍历每个未加热的位置 使用last记录上次开启的加热器位置 j扫描i + r - 1位置到上次的加热器位置内是否有加热器如果有则打开 i跳到下一个未加热的位置i = k + r 注意数组开2000因...

2019-11-19 21:29:00 44

原创 HDU - 3530 Subsequence

维护了两个队列,一个是以当前结束所构成的递减序列的位置,另一个是以当前结束构成的递增序列的位置,然后每次的最大值减去最小值,如果大于k,那么就更新两个中的一个,应该更新位置较小的那个,这样才能使得这个区间的长度最大,然后就这么更新就行了 。#include<cstdio>#include<iostream>#include<algorithm>#incl...

2019-11-19 20:43:41 58

原创 Divisibility Codeforces 597A

思维#include<iostream>using namespace std;#define ll long longint main(){ ll k,a,b; cin>>k>>a>>b; ll sum=0; if(a>=0) { sum=b/k-a/k; if(a%k==0) sum...

2019-11-19 19:07:51 68

原创 Not Equal on a Segment(CF-622C)

思维ans[i] 表示i前面第一个不等于num[i]的位置#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int num[200010];int ans[200010];int main(){ in...

2019-11-17 21:06:32 75

原创 Guess the Permutation

思维1.找到每一行的最大值。这一行小于最大值的数可以确定为这.一列的值。2.把每一行的最大值按照从大到小排列。将没有用过的值从大到小依次分配。#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int num...

2019-11-17 20:23:07 241

原创 环路运输

环形 单调队列#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>using namespace std;#define ll long long int num[2000010];int q[2000010];int main(){ i...

2019-11-17 00:29:05 155

原创 Naptime POJ - 2228

环形dp分为两种情况:N休息 N不休息#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define inf 0x3f3f3f3fusing namespace std;int num[4010];int dp1[2][4100][2];...

2019-11-16 21:46:49 125

原创 选课

有依赖的背包问题(树形dp+分组背包)#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;int num[310],deg[310];int h[310],ver[310],ne[310],cnt=0;int...

2019-11-16 14:19:12 91

原创 没有上司的舞会

树形dp 基础题#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;int num[6100];int deg[6100];int dp[6100][2];int h[6100],ver[6100],ne[...

2019-11-16 12:45:28 50

原创 The Accomodation of Students

二分图模板题染色法+匈牙利算法#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>int h[210],ver[4000000],ne[4400000],cnt=0;//与边数有关,题目未标明int color[210],st[210],match[...

2019-11-15 19:31:42 66

原创 Sightseeing trip POJ - 1734

floyd变形 求最小环将结果看成一个集合:有编号最大为k的节点组成的环(1<=k<=n)#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<vector>using namespace std;#defi...

2019-11-14 23:37:29 61

原创 Sorting It All Out POJ - 1094

1.floyd 求传递闭包#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>using namespace std;int d[30][30];int g[30][30];int n,m;int st[30];int check(){ f...

2019-11-14 22:13:14 88

原创 道路与航线

1.dij与topsort2.有多个队列时注意变量#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<algorithm>using namespace std;int head[50010],ne[200010],ver[2...

2019-11-14 12:08:08 148

原创 道路与航线

1.spaf 变形2.正反建图#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<algorithm>using namespace std;int a[100010];int h1[100010],n1[1000010],...

2019-11-13 14:44:35 73

原创 Telephone Lines POJ - 3662

1.看到至少可以考虑一下二分2.题目要求的是第k+1大。二分的要求是答案及答案的一侧都满足要求。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<queue>using namespace std;int head...

2019-11-13 13:45:11 89

原创 Domino

解题说明:此题是要求交换一些行上两个数的位置让前后两列数字之和都是偶数。做法是先统计前后两列的和,如果和都为偶数就不用交换,如何一奇一偶那么无论如何交换都不行,如果是两个奇数则需要找到某一行中两个数字之和为奇数的情况,因为交换了这两个数,前后列的和分别变化1,这样正好得到了两个偶数。分析后发现其实题目中最多只需要交换一行即可。#include#include#includeusing na...

2019-11-12 20:14:25 85

原创 HDU 6016 Count the Sheep

枚举中间的边,然后把(b的朋友数-1)*(c的朋友数-1)加到答案中。(最后注意乘二,因为颠倒顺序又能出来一组)#include<stdio.h>#include<string.h>#include<cstring>#define ll long longusing namespace std;int a[100010],b[100010];ll ...

2019-11-08 21:31:13 52

原创 CodeForces 735 B.Urbanization

Description一个有n个数的集合,要拿出两个不相交子集,一个n1个数,一个n2个数,问两个集合算术平均值之和的最大值Input第一行三个整数n,n1,n2,之后n个整数a[i] (1<=n,n1,n2<=1e5,n1+n2<=n,1<=a[i]<=1e5)Output输出两个子集的算术平均数之和的最大值Sample Input2 1 11 5...

2019-11-06 19:50:46 91

原创 HDU-5090--Game with Pearls

题目大意:Tom和Jerry做游戏,给定N个管子,每个管子上面有一定数目的珍珠。    现在Jerry开始在管子上面再放一些珍珠,放上的珍珠数必须是K的倍数,可以不放。    最后将管子排序,如果可以做到第i个管子上面有i个珍珠,则Jerry胜出,反之Tom胜出。解题思路:    贪心:(15ms)       将N个管子按管子中的珍珠数量升序排序,则满足条件的时候第i个管子应该有i个...

2019-11-06 16:42:31 88

原创 B. Dasha and friends

这个题转换一下思路就可以了。不要想起点在哪,而是计算出每个障碍之间的间隔是多少。然后求出的两个间隔队列比较一下,注意这里的比较不要忘记位移比较,因为是个圈。所以如果在某个位移位置存在重合,那么就是相等的,否则就是不相等。#include<cstdio>#include<algorithm>#include<vector>#include<cma...

2019-11-06 16:03:21 101

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除