自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

九野的博客

新窝:cygmasot.com

  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 UVALive 3516 Exploring Pyramids 区间dp+计数原理

题目链接:点击打开链接给定多叉树的先序遍历结果,求多叉树的同构数思路:区间dpimport java.io.PrintWriter;import java.util.ArrayList;import java.util.Scanner;public class Main { int min(int a,int b){return a>b?b:a;} int max(

2014-12-24 12:12:11 1417

原创 UVA 10859 Placing Lampposts 树形dp(水

题目链接:题意:白书P70思路:简单题,每个点分放或不放。import java.io.PrintWriter;import java.util.ArrayList;import java.util.Scanner;public class Main { int min(int a,int b){return a>b?b:a;} int max(int a,int

2014-12-23 21:03:40 1086

原创 UVA 11174 Stand in a Line 树形dp+计数

题目链接:点击打开链接题意:白书的P103.加个虚根就可以了。。。然后就是一个多重集排列。import java.io.PrintWriter;import java.util.ArrayList;import java.util.Scanner;public class Main { static int N = 40100; ArrayList[] G = new Ar

2014-12-23 00:01:47 1531

原创 Codeforces 490F Treeland Tour 树上的最长上升子序列

题目链接:点击打开链接题意:给定n个点的树。下面n个数表示点权。下面n-1行给出树。找一条链,然后找出这条链中的点权组成的最长上升子序列。求:最长上升子序列的长度。思路:首先是维护一条链然后求答案,但是如果直接树形dp(记录每个点u,u往下递增和u往下递减的长度)会使序列是来回的,即递增和递减都在同一条链上。枚举每个点作为子序列的开头,然后维护一条链进行LIS的

2014-12-22 00:02:15 2481

原创 CodeForces 468B Two Sets 二分匹配

题目链接:点击打开链接题意:给定n个数,常数a, b把n个数放到集合A和集合B使得:对于某个数x,若x在A集合则 a-x也必须在A集合(若a-x不存在于n个数中,则x不能放在A集合)放在B集合同理。输出任意解:每个数放在哪个集合里(允许n个数都放一个集合)思路:类似二分匹配的做法。import java.io.PrintWriter;import ja

2014-12-21 13:04:38 2131

原创 CodeForces 468A 24 Game 规律题

题目链接:点击打开链接题意:给定一个n表示有n个数字[1,n]问:用+ - * 3种运算把n个数变成24是否可行,若可行输出任意解。思路:因为2*3*4 = 24;所以当n>=4时一定有解。若n是偶数则4个连续数一组消成0,若还多余2个则变成 (n+1)-n = 1.若n是奇数则把5消掉: 5-1 = 4; 4-2 = 2;。impo

2014-12-21 13:00:33 1524

原创 Codeforces 497C Distributing Parts set+贪心

题目链接:点击打开链接题意:给定n个任务下面[l, r]是n个任务需要占用的时间。m个人下面是m个人的空闲时间以及这个人至多能做的任务个数(一个人同一时刻只能做一个任务,即人是单线程的)[l, r] num问:若任务不能被全部完成则输出NO否则输出YES输出每个任务是谁完成的。思路:把人和任务放一起按右端点排序。若遇到了任务则把任务的左端点放到s

2014-12-18 21:22:13 1715

原创 Codeforces 496D Tennis Game 枚举+二分

题目链接:点击打开链接题意:给定n场比赛。下面n个数字:表示该场是1获胜还是2获胜。1、胜利者获得一分。2、若已经决出整个赛季的胜负则比赛不会继续。3、设要赢得这个赛季需要赢有s局,每局先获得t分的选手胜利。问:找出所有的(s,t)组合使得给定的n场比赛记录合法。输出要排序。枚举t。a数组存第一个人赢的哪些场次。b数组存第二个人赢的哪些场次。设赢

2014-12-18 21:07:51 1636

原创 UVA 12596 Recursive Texting 预处理+dfs

题目链接:题意:给定一个字符串,操作一次:1、先把字符串按照上面的图变成数字。2、再把数字按照上面的图变成字母。输出操作n次后第k位的字母。先预处理每个一个字母操作i次后产生的长度,然后递归搜索答案。#include #include #include #include #include using namespace std;typedef l

2014-12-12 00:57:05 1368

原创 URAL 2017 Best of a bad lot 二分图染色 使x集点数最少

题目链接:点击打开链接题意:有n个嫌疑犯。[1,n]第i行表示第i个嫌疑犯说案发时他所在的地名,后面一个数m表示当时他看到m个人,后面m个数表示他看到的人。找出最小的犯罪团体(即多数人都是好人原则)若大家都是好人则随便输出一个人当坏人==思路:当一个人x被2个不同地方的人u, v看到时,则u v其中一个一定是犯人。所以u-v建一条边。然后二分图染色使得x点集点数

2014-12-09 16:59:43 1560

原创 NEERC 2014, Eastern subregional contest 题解

URAL 2012About Grisha N.#include int main() { int n; while(~scanf("%d", &n)) { if(n >= 7) puts("YES"); else puts("NO"); } return 0;}URAL 2013Neither shaken nor stirre

2014-12-09 16:03:30 2448

原创 URAL 2014 Zhenya moves from parents 线段树

题目链接:点击打开链接题意:给定一张银行卡的n条记录:val day.mon hour:min表示这张卡在这个时间有一条交易。输出n行,对于输出的第i行表示:根据前i件记录,可以推测出这张卡的最大透支额度是多少。即:把前i个记录按时间排个序,跑一遍,输出过程中的最小值。思路:我们可以认为前i-1个事件已经有序,并且每个事件都有个过程最小值。1、当插入第i个事件时

2014-12-09 15:20:01 1534

原创 URAL 2013 Neither shaken nor stirred dfs 模拟

题目链接:点击打开链接题意:给定n个点的有向图:下面n行,第一个数字表示点权,后面一个数字m表示有m条边。起点是1.对于每个点,输出2个值表示前驱点权1和该点点权2。1、若有多条路径到达该点且前驱的点权存在>0则输出unknown,否则输出前驱的点权(就是若有多条路径且全为0输出0,否则若只有一条路径则输出前驱点权,否则输出unknown)2、若1输出的是0,则输出该点

2014-12-09 14:52:02 1594

原创 UVA 12386 Smallest Polygon n个点的任意多边形求最小周长 科学的暴力

题目链接:题意:给定n个点,用n个点组成的多边形中(可以是凹多边形,但n个点一定要全在多边形上)在所有能由n个点构成的多边形中求最小面积的多边形的周长 - 最小周长。思路:首先我们选择一个定点,则接下来的数进行一个排列,有(n-1)!个排列。这个序列相邻两个数之间有一条线段。判断多边形合法:任意两条线段不相交即可。n^2剩下就是简单的更新答案了。所以复杂度是

2014-12-07 00:36:20 3247 1

原创 UVA 12378 Ball Blasting Game Manacher裸题

题目链接:点击打开链接题意:消除字符串游戏,选择一个字母,则会消除和该字母相同且连续的一段,然后左右两边合拢,若左右两边字母相同则再次消除掉。直到合拢时两边字母不相同。问这样连续消除的最大次数。思路:先把连续相同的字母当成一个字母,然后求最长回文串,则答案就是(最长长度+1)/;2#pragma comment(linker, "/STACK:1024000000,10

2014-12-07 00:28:04 4644

原创 Manacher模版

求字符串中出现过的最长回文子串const int MAXN = 110010;//字符串长度<MAXNchar Ma[MAXN * 2];int Mp[MAXN * 2];void Manacher(char s[]) { int l = 0, len = strlen(s); Ma[l++] = '$'; Ma[l++] = '#'; for (int i = 0; i<le

2014-12-07 00:17:46 2155

原创 UVA 12382 Grid of Lamps ZOJ 3732 Graph Reconstruction 可图判定性

Uva 12382 题目链接:点击打开链接ZOJ 3732题解:点击打开链接Uva12382题意:给定n*m的地板,每个地板上有一盏灯,要么亮要么暗。下面n个数字表示每行至少亮的灯盏数下面m个数字表示每列至少亮的灯盏数求:开始灯都是暗的,最少点亮几盏灯能满足上述条件思路:先给行和列大到小排序,然后每次用行减掉列。减完后再排个序即可。即:实时排序。

2014-12-07 00:10:16 1541

原创 HDU 4106 Fruit Ninja 区间k覆盖问题 最小费用流

题目链接:点击打开链接题意:给定n长的序列,m ,k选择一些数使得 选择的数和最大。输出和。限制:对于任意的区间[i, i+m]中至多有k个数被选。思路:白书P367,区间k覆盖问题,把一个区间看成一个点,那么选了一个点就相当于覆盖了m个区间。#include#include#include#include#includeusing namespace std

2014-12-04 23:44:00 1778

原创 Aizu 2303 Marathon Match 概率dp

题目链接:点击打开链接题意:一场马拉松给定n个运动员,跑道上有m个休息站,马拉松跑道长L下面n行每行3个参数表示每个运动员崩溃概率:P 休息时间:E 跑步速度:V。每个运动员随时会崩溃,崩溃后会坚持到下一个休息站,进入休息他的休息时间。全程匀速运动,可能多次崩溃。问:每个运动员成为唯一一个第一名的概率。思路:其实可以转换成每个运动员进入下一个休息站的概率是P

2014-12-04 16:33:21 1353

原创 Aizu 2306 Rabbit Party 爆搜顶点导出子图

题目链接:点击打开链接 题意:给定n个点的完全图,下面给出m条边权不为0的边下面m行给出边和边权。其他的边边权都为0.选择一个顶点导出子图,该子图的每个点点权为 该点连接的最小边权。找一个这样的子图使得点权和最大,输出点权和。思路:因为是一个完全图,所以我们选择的点构成的图一定不包含权值为0的边。因为若包含了权值为0的边,则大可以把这两点删掉而不会减小答案。所以

2014-12-04 16:26:23 1721

原创 Codeforces 280C Game on Tree 概率dp 树上随机删子树 求删完次数的期望

题目链接:点击打开链接题意:给定n个点的一棵树每次操作随机选任意一个点,把这个点和这个点的子树删去。当把所有点删去则停止。问操作次数的期望。题解引用自:点击打开链接删除的规则拥有一个非常好的性质:对于任意(u,v),选择u会导致删除v,那么选择u会删除的点集合一定包含选择了v以后会删除的点集合。我们考虑换一种方式来实现删除的过程:产生一个随机的1-n的排列P,从

2014-12-03 00:28:59 2977

原创 欧拉函数相关

x > phi(m)时a^x = a^{phi(m) + x mod phi(m)} (mod m)

2014-12-02 15:00:03 1064

原创 Codeforces 492D Vanya and Computer Game 循环节找规律

题目链接:点击打开链接题意:给定n只怪物的血量,x', y第一个人每秒钟攻击x次,第二个人每秒钟攻击y次每次攻击给所有存活的怪物造成一点伤害。问每只怪物最后一击是谁打死的思路:xy的最小公倍数内有个循环节,先跑出这个循环节(同时攻击时造成2点伤害,就在循环节里加2次both)然后对于每只怪只要关心在循环节里坐落在哪个攻击点就好了#includeusing

2014-12-02 14:56:27 1575

原创 Codeforces 492E Vanya and Field 规律题

题目链接:点击打开链接给定n*n的矩阵(0,0)->(n-1, n-1) m个苹果(下面m行给出苹果坐标)(dx, dy) 向量。任选一个起点,用这个向量在矩阵里跑,问最多能采摘多少个苹果(坐标是%n, 即超过矩阵时 (x%n, y%n))输出起点。思路:把向量所在的点集写出来会发现一个起点一定经过了n个点,即至多只有n种起点所以把点分成n个组即可。#pragma co

2014-12-02 14:33:22 1416

原创 POJ 1015 Jury Compromise DP+记录路径

找每个点能转移出去的状态时要回溯到根去掉所有能转移的点来去重。。可能这种做法在距离根距离较小的时候能用。。(隐隐感觉有bug,还是人云亦云地做掉先了。。)#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include

2014-12-01 19:48:32 1598

九野的模版3.15.10.pdf

http://blog.csdn.net/acmmmm

2015-12-19

空空如也

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

TA关注的人

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