自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2014taichuan D题

题意:给定一颗有N个节点的树,一开始每个节点都是白色的,现在要对每个节点进行决策,使得每个白色节点连接着恰好K个黑色节点,如果达不到则这个白色节点变为黑色分析:树形dp g[u] 表示以u为根节点的子树且u节点为黑色时的最大白点数f[u][i] 表示以u为根节点时的子树且u为白色节点时连接i个黑色节点的最大白点数,这里的转移是一个树上的背包{CSDN:CODE:1205

2015-10-14 14:41:59 668

原创 二分图的最大匹配

poj 3401 题意:给定一个n*n的矩阵,其中分布着m个东西吧,每一次行操作或者列操作都可以消除整行或整列,求最小的操作次数分析:以行和列建立左右顶集, 因此为一个二分图,对于i, j位置有一个东西这建立一条这样的边, 表示行i或列j至少要进行一次操作,也就是选出最少的边,使得每一个顶点至少被一条边覆盖, 这个就是最小点覆盖,二分图中这个等于最大匹配{CSDN:CODE:1

2015-10-13 20:22:27 398

原创 poj 3565

题意:给定平面上的n个白点和n个黑点,要求用n条线段连接白点和黑点, 并且每一条线段不想交分析:黑白点可看为二分图中的x集合和y集合,可得出当两个集合为最小圈匹配时一定满足条件#include #include #include #include const int N = 100 + 5;const double eps = 1e-10;int n;

2015-10-05 17:51:14 928

原创 2014西安F题

题意:给定n朵花, 用m种颜色去染色, 要求相邻两朵花之间的颜色不同并且不同的颜色总数恰好为K,求方案数分析:首先我们可以从m种颜色种选出k种颜色,让这k种颜色进行染色g(k) : 恰好k种颜色的染色方案数f(k):小于等于k种颜色的染色方案数则 f(k) = sum(g(i)  * c(k, i) (i = 1, 2, 3...k))此处用到了二项式反演公式:则g(k

2015-10-02 23:21:12 501

原创 hdu 4777

题意:给定一个长度为n的序列,然后m次询问, 每个询问求[l, r]区间的与其他数都互质的数的个数分析:非常感谢叉姐提供的思路,首先对于每一个a[i]我们可以求出 left[i],  right[i]表示这段区间的数与a[i]都互质,对于询问的区间我们按照左端点从小到大排序进行离线操作,对于到达left[i]时我们将[i, right[i]] +1, 离开i时将[i, right[i]] -1

2015-10-02 23:06:42 930

原创 sprintf小记

sprintf:可将一个一个整数转换为一个字符串#include int main() { freopen("out.txt", "w", stdout); for (int i = 1; i <= 10; i ++) { char str[10]; sprintf(str, "%d", i);

2015-09-01 18:36:22 425

原创 istringstream小计

存个模板, istringstream主要是有利于带有空格的长度不定的字符串的读入#include const int N = 10000 + 5;char buffer[N];int main() { freopen("a.txt", "r", stdin); freopen("out.txt", "w", stdout);

2015-08-25 22:08:24 425

原创 hdu 5363

题意:给定1-n这N个数, 求一个非空的和为偶数的子集个数分析: 答案为2(n - 1)  - 1个 。#include typedef long long ll;const int N = 100000 + 5;const int mod = (int)1e9 + 7;int main() { int t; scanf("%d", &t);

2015-08-10 13:45:20 444

原创 hdu 5340 manacher

题意 : 给定一个长度小于20000的字符串, 问是否可以分割成3段非空回文字符串。分析: manacher预处理出前缀和后缀回文的位置, 然后判断中间部分是否回文即可, 复杂度o(n2);

2015-08-05 10:55:26 486 1

原创 zoj 3876

题意: 给定一个年份, 问该年的五月一号有几天假分析: 其实就是求某年某月某日是星期几

2015-05-05 20:30:22 594 1

原创 hdu 5213

很久没有写博客了, 今天学了一下莫对算法, 存个模板#include using namespace std;const int N = 30000 + 10;const int M = 30000 + 10;struct node { int id; int is; int flag; int l, r; node(int

2015-04-28 17:15:25 689

原创 vim

set nocompatiblesource $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswinset diffexpr=MyDiff()function MyDiff() let opt = '-a --binary ' if &diffopt =~ 'icase' | let opt =

2015-01-28 10:06:46 599

原创 hdu 4819

二维线段树, 单点更新 + 区间查询(cu)

2014-11-16 15:31:32 730

原创 hdu 4821

题意:给定一个字符串, 求

2014-11-14 23:13:24 816

原创 hdu 4912 lca

题意: 一颗n个节点的树和m条路径, meitian

2014-08-29 16:07:40 701

原创 杭电扩栈

今天做了一个题, 居然zhan#pragma comment(linker, "/STACK:1024000000,1024000000")

2014-08-29 10:50:48 1131

原创 hdu 4911

题意:给你n个数, 可以将相邻的两个数交换, 问z

2014-08-28 10:47:35 725

原创 结构体学习

#include #include #include using namespace std;struct node { int x, y; node () {}; node (int x, int y) : x(x), y(y) {};};int main() { node a; node b(1, 2); node

2014-08-24 18:38:31 621

原创 hdu 4973

题意:给你n个细胞

2014-08-23 16:16:30 1134

原创 hdu 3954

感觉太神了,研究了一天,不过有时候

2014-08-04 17:13:57 749

原创 Codeforces Round #259 (Div. 1)

A 题意:给你一个m面的筛子,抛掷N

2014-08-02 21:46:47 570

原创 Codeforces Round #256 (Div. 2)

这还是第一次把cf完整的5道题qie

2014-07-28 20:49:57 612

转载 LightOJ数论题单及简易题解

1007 计算前n个数的欧拉函数的平方的和,递推计算欧拉函数,并利用树状数组,注意2 5000000这组数据要unsigned long long才能存下1014 计算P-L的因子中大于L的数的个数,从1到65535分别对P-L进行试除,同时储存除数和商,然后输出大于L的数即可1024 计算最大公倍数,每个数需要素数展开,然后取最高次幂,结果需要大数,大概有4000位,写不好的话会T1

2014-07-26 19:45:41 965

原创 Codeforces Round #257 (Div. 2)

A题小孩子排队领糖, 每个小孩的期望数buyi

2014-07-26 16:21:59 540

原创 lightoj 1028

题意:给你一个zhenshu

2014-07-25 11:20:00 760

原创 UVA 10817 Headmaster's Headache

题意:校长#include #include #include using namespace std;const int inf = 0x3f3f3f3f;int dp[110][7000], cnt[10], vis[10];int s, n, m;char str[100];bool is_digit(char c) { if

2014-07-19 14:44:31 713

原创 UVA 11552 Fewest Flops

题意:给你一个字符h

2014-07-18 09:29:58 651

原创 LA 3530 Martian Mining

题意:给定一个n*m的

2014-07-17 09:41:47 864

原创 LA 4256 Salesmen

题意:

2014-07-16 20:42:07 1048

原创 UVA 437 The Tower of Babylon

题意:给你n种方块, 每种方块有无限多种,要求当

2014-07-16 15:30:11 568

原创 UVA 11404 Palindromic Subsequence

题意:给你一个字符串, 求最长的回文子序列, 若答案不唯一, 则输出zidia

2014-07-16 12:59:51 829

原创 UVA 10534 Wavio Sequence

题意:给定一个长度为n的xuli

2014-07-15 11:26:50 583

原创 UVA 11584 Partitioning by Palindromes

题意: 给定一个字符串, 问最少分为几部分可使各buf

2014-07-13 19:08:07 932

转载 ACM大纲

Changsha University of Science & TechnologyJuly 31, 20121 推荐题库• http://ace.delos.com/usaco/美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,全部的题解及标程还有题目翻译可以baidu 一个

2014-05-02 17:25:24 1437

原创 hdu 3397

开一维数组col[]进行延迟标记col[] = -1表示没有要向下传递的操作col[] = 0表示向下传递时将左右区间全部赋值为0col[] = 1表示向下传递时将左右区间全部赋值为1col[] = 2表示向下传递时将左右区间的0变为1, 1变为0 #include #include using namespace std;const int maxn =

2014-02-23 13:58:24 683

原创 线段树 区间合并

1 poj 3667 题意:支持两种操作 1 如果有连续长度大于D的房间,则输出最左的区间值, 否则输出0;2 将ql, qr区间的房间标记为             未入住思路:节点维护三个域, 该节点的最大房间数,该节点左端点起的最大房间数, 该房间右端点起的最大连续房间数,用线段树进行更新和查询#include #include using namespace s

2014-02-17 13:56:33 742

原创 Codeforces Round #223 (Div. 1)

题目:http://codeforces.com/contest/380A题意:实现两种操作1 在数组的最后插入一个数; 2将数组的钱L部分复制c次, 问任意位置的元素值思路:递归求解, 每次执行操作后记录下当前数组的总长度和此操作的类型,求解时二分查找该位置为第P次操作,若该操作为1, 则直接输出答案,否则计算该位置为复制前L长的位置v,递归求解{CSDN:CODE:18

2014-02-09 22:52:51 799

原创 最长上升子序列的变形

poj  3616#include #include #include using namespace std;typedef struct { int s, e, v;}point;point a[1010];int dp[1010], n, m, r;bool cmp(point a, point b){ return a.e < b.e;}int mai

2014-02-03 11:19:52 738

原创 hdu 1242

在使用优先队列时, 不仅可按元素的大小为优先级,在使用结构体时,可通过运算符重载在其他的博客看到一句话,优先队列是队列和排序的结合,很精辟本题因为经过守卫和道路时所花的时间不一样,故不能用简单的队列求解,可使用优先队列,到达该点时间少的先出队列#include #include #include using namespace std;struct node{ int x

2014-01-22 19:27:28 635

原创 优先队列

poj 3253#include #include using namespace std;priority_queue, greater > q;int n, t;int main(){ while(scanf("%d", &n) == 1) { while(!q.empty()) q.pop(); for(int i=1; i<=n;

2014-01-21 10:56:42 652

空空如也

空空如也

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

TA关注的人

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