- 博客(56)
- 收藏
- 关注
原创 Longest k-Good Segment
The array a with n integers is given. Let's call the sequence of one or more consecutive elements in a segment. Also let's call the segment k-good if it contains no more than k different values.Find a
2016-01-27 00:59:19 375
原创 UVA 11488 Hyper Prefix Sets
就是求前缀长度*有当前长度前缀的串的数量 的最大值 #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; #define N 25 #define inf 1999999999 struct node { int
2015-12-15 17:16:57 344
原创 hihocoder #1141 : 二分·归并排序之逆序对
#include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; #define N 100005 #define inf 1999999999 #define mod 1000000007 int a[N],b[N]
2015-12-14 17:04:01 355
原创 UVA 11235 Frequent values
求区间最多相同数的数量是多少,因为数列是排序好的,所以直接离散了用线段树求比如样例 -1 -1 1 1 1 1 3 10 10 10 离散后就是(1,2)(2,4)(3,1)(4,3)标号为1的数有2个,标号为2的数有4个.....再用Left[i]Right[i]数组记录标号为i的左边界和右边界,方便查询。 查询时就是线段树求最大值了 #include #include #include
2015-12-13 17:15:28 287
原创 hdu 5529 ZYB's Premutation
当时想到是nlog(n)的方法,也想到用线段树,可是就是写不出来,只知道a[i]-=a[i-1]就是前面有多少个数比当前这个数大,却没想到如果这时a[i]+1就是当前数组中第几大的数了,当然要倒着求,然后就是用线段树维护一个数组了。没想到写出来这么简单。 #include #include #include #include #include #include #include using na
2015-12-06 17:11:51 675
原创 LightOJ 1140 How Many Zeroes?
题意就是问从n到m之间有多少个0。数位dp枚举每一位dp[i][j]表示到i为有j个0的有多少 #include #include #include #include #include #include #include using namespace std; typedef long long LL; LL dp[22][22]; int dig[20]; LL F(int pos,int
2015-12-04 21:12:16 267
原创 poj 1679 The Unique MST
判断最小生成树是否唯一,只需要判断是否存在至少有两条到达某个点相同权值的路径 #include #include #include #include #include #include using namespace std; #define N 110 #define LL __int64 #define inf 1999999999 int dis[N],Map[N][N]; bool vi
2015-12-04 14:31:12 230
原创 hdu 3018 Ant Trip
问至少从几个点出发可以遍历所有的边且每条边仅访问一次。 先看看给定的图是几个联通块组成的,遍历的起点和终点肯定是度为奇数的点(除非这联通块是环)也就是遍历只能是u->v1->v2->v3->。。。。->vn(或者u->v1->v2->v3->。。。。->u),所以要统计每个联通块的度为奇数 的点的个数和度为偶数的点的个数,则ans=奇数 的点的个数/2+都是偶数的联通块的个数。 #includ
2015-11-24 18:04:30 278
原创 POJ 2392 Space Elevator
#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 1<<31 #define mod 1000000007 #define N 40100 in
2015-11-20 15:39:40 252
原创 HDU 4771 Stealing Harry Potter's Precious
A 点击打开链接 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 0x3f3f3f3f #define N 110 struct node
2015-10-13 18:09:53 300
原创 POJ 2836 Rectangular Covering
B 点击打开链接 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL __int64 #define inf 1999999999 #define N 1010 #define mod 1
2015-10-08 13:14:26 219
原创 POJ 2436
A 点击打开链接 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL __int64 #define inf 1999999999 #define N 1010 #define mod 1
2015-10-08 10:31:53 362
原创 FZU 1719
U 点击打开链接 连通图缩点 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 199999999 #define N 3010 int l
2015-10-07 21:24:39 280
原创 HDU 2874
P 点击打开链接 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL __int64 #define inf 1999999999 #define N 10010 int p[N],ehe
2015-10-07 21:18:55 324
原创 HDU 2586
O 点击打开链接 离线做法,倍增法还不会 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 199999999 #define N 40010
2015-10-07 21:17:35 256
原创 HDU 3394
N 点击打开链接 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 199999999 #define N 10005 int low[N],
2015-10-07 19:56:21 353
原创 HDU 2460
J 点击打开链接 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 199999999 #define N 200005 int low[N]
2015-10-07 19:53:27 337
原创 HDU 3594
H 点击打开链接 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 199999999 #define N 20010 int low[N],
2015-10-07 16:58:45 344
原创 HDU 2242
I 点击打开链接 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL __int64 #define inf 1999999999 #define N 10010 #define mod
2015-10-07 16:49:37 290
原创 HDU 3639
点击打开链接 G #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 199999999 #define N 5010 int low[N],d
2015-10-07 16:46:57 310 1
原创 HDU 3078
就是求最近公共祖先#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 199999999 #define N 80010 int ans[N],d
2015-10-07 16:37:52 299
原创 HDU 3072
#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 199999999 #define N 50010 struct node { int
2015-10-07 15:55:29 267
原创 HDU 1827
#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 1999999999 #define N 1005 #define max(a,b)(a>b?
2015-10-07 15:26:29 314
原创 HDU 3836
#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 1<<30 #define N 20010 vectoredge[N]; int low[N]
2015-10-07 15:21:42 272
原创 HDU 2767
#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 1<<30 #define N 20010 vectoredge[N]; int low[N]
2015-10-07 15:20:44 287
原创 HDU 1269
#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 1<<30 #define N 10010 vectoredge[N]; int low[N]
2015-10-07 15:19:15 271
原创 hdu 5495 LCS
#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 199999999 #define N 100010 int a[N],b[N],c[N];
2015-10-04 16:33:29 281
原创 hdu 5496 Beauty of Sequence
点击打开链接 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf 199999999 #define N 100010 #define mod
2015-10-04 16:27:01 456
原创 [kuangbin带你飞]专题七 线段树
点击打开链接 A(hdu 1166 敌兵布阵 )中文体面,线段树单点更新,求一段区间和 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define inf
2015-10-01 15:05:56 874
原创 Codeforces Round #298 (Div. 2) D. Handshakes 二分
D. Handshakes time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output On February, 30th n students came in the Cente
2015-07-27 17:06:48 304
原创 字符消除
时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"A
2015-05-28 16:25:33 840 1
原创 hdu 1002
#include #include char s1[1010],s2[1010]; int main() { int i,j,m,n,t,ca=1; int f1[1010],f2[1010],ans[1010]; scanf("%d",&t); while(t--) { scanf("%s%s",s1,s2); n=strl
2014-10-08 19:02:00 390
原创 poj 1598 Excuses, Excuses!
#include #include char str1[25][100],str2[25][100],ch[100],str3[25][100]; int m,n,ans[25]; int judge(char c) { if(c>='a'&&c<='z') return 1; return 0; } void init() { int i,j; for(i=0;i<n;i++) sc
2014-08-10 17:44:46 352
原创 hdu 1533 Going Home(KM)
#include #include #include #define max(a,b)(a>b?a:b) #define min(a,b)(a<b?a:b) #define inf 999999999 #define size 110 int n,m,map[size][size],lx[size],ly[size],match[size]; int visitx[size],visity[siz
2014-08-01 15:23:24 397
原创 hdu 3605 Escape(多重匹配)
#include #include #define N 100005 #define M 13 bool map[N][M],vis[M]; int m,n,match[M][N],lim[M],num[M]; int find(int u) { for(int i=0;i<m;i++) { if(!vis[i]&&map[u][i]) { vis[i]=1; if(num
2014-07-30 22:39:42 410
原创 HDU 1498 50 years, 50 colors
#include #include #include using namespace std; #define size 110 int map[size][size],use[size],vis[size],ans[size],k,n,match[size]; int find(int u,int color) { int i,j; for(i=1;i<=n;i++) { if(!vi
2014-07-29 22:09:55 444
原创 HDU 1151 Air Raid(最小路径覆盖)
#include #include #define N 1050 int map[N][N],vis[N],match[N],m,n,k; int find(int u) { int i,j; for(i=1;i<=n;i++) { if(map[u][i]&&!vis[i]) { vis[i]=1; if(match[i]==-1||find(match[i]))
2014-07-29 14:31:41 474
原创 HDU 1068 Girls and Boys (二分图 最大独立子集)
#include #include #define M 510 #define N 250010 int head[M],next[N],key[N],match[M]; int use[M],num,n; void add(int u,int v) { key[num]=v; next[num]=head[u]; head[u]=num++; } int find(int
2014-07-29 11:03:03 416
原创 HDU 1698 Just a Hook
#include #include #define size 100010 struct node { int l,r,sum,add; }tree[size<<2]; void pushup(int n) { tree[n].sum=tree[n<<1].sum+tree[n<<1|1].sum; } void build(int l,int r,int root) { tree[root
2014-07-25 10:50:50 428
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人