自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 G题 Query on a string

题意:给出字符串S和字符串T然后q次查询查询分为两种:1:查询字符串区间[x,y]内T能被匹配几次2.修改字符串S[x]为c题解:树状数组+瞎搞用树状数组保存前k个位置能匹配几次T第i个位置能匹配的意思是 S[i~i+len-1] = T[1~len]  len是字符串T的长度首先预处理出树状数组,然后查询时直接给出答案,修改时先将字符串修改

2017-09-09 17:51:33 1347

原创 Codeforces Round #420 (Div. 2) 821E. Okabe and El Psy Kongroo

题目链接:http://codeforces.com/contest/821/problem/E题意:一个人要从(0,0)到(k,0),并且只能往右或右上或右下走,问有多少种走法。这个平面上有n条平行于x轴的线段,设第i条线段的左起点为LX[i],右起点为RX[i],纵坐标为Y[i],并且RX[i]=LX[i+1],就是n条线段在X轴上的投影是连续的。当这个人在(x,y)点上且

2017-06-26 17:34:34 482

原创 Codeforces Round #420 (Div. 2) 821D Okabe and City

题目链接:http://codeforces.com/contest/821/problem/D题意:有一个n*m的矩形上面有k盏灯,每盏灯占一个格子。只能走有灯的格子,但是当在一个原始就有灯的地方可以花费1使一行或者一列变亮以供行走。现在要求你从左上(1,1)走到右下(n,m),求最小花费。题解:这题可以看做将k个点看做图中的点,由于站在一个初始亮的点上可以将

2017-06-26 08:34:45 843 2

原创 codeforces 817D Imbalanced Array

题目链接:http://codeforces.com/contest/817/problem/D题意:给出一组数,求所有连续子串的最大值与最小值差的和题解:从每个数可作为最大值被计算次数Maxki和最小值计算次数Minki入手,答案就是sum(Maxki*num[i]-Minki*num[i])那么如何计算Maxki和Minki呢?首先假设这个数num[

2017-06-16 14:20:38 811

原创 Codeforces Round #418 (Div. 2) C. An impassioned circulation of affection

题目链接:http://codeforces.com/contest/814/problem/C题意:给出一个长为n的字符串s,接下来有q次询问,每次询问给出正整数m和字符c,问在字符串中最多添加m个字符c后字符串中最长的仅含c的连续子串的长度为多少题解:因为q设dp[i][j][k]为从第i个下标开始选择修改k个字符后,仅含字符'a'+j的连续子串的最长长度为多少。当

2017-06-07 23:59:27 355

原创 计蒜客第六场 微软大楼设计方案(困难)

题目链接:https://nanti.jisuanke.com/t/15773题解:先对点按x排序设Xa当kk时不符合条件,并且更大的Xb也不符合条件,所以不接下去枚举Xb。因为楼层高度最高为20所以最多计算20*20次k>40时,从枚举Xa,再对Xb进行二分,找到第一个Xb-Xa>=k-40,则在Xa至Xb之间的核心部门到Xa的距离都是k为止,同样最多计算20*20次

2017-06-04 23:53:27 571 2

原创 Codeforces Round #417 (Div. 2)

A题目链接:http://codeforces.com/contest/812/problem/A题意:给出十字路口四块部分每块4个方向(左转、直行、右转、人行道)共16个方向的信号灯,问是否会出现汽车可能撞到人的情况题解:直接把所有人行道判断一遍即可#includeusing namespace std;#define MAX_N 1005#define inf

2017-06-02 09:56:41 333

原创 14届浙江省acm总结

由于省赛后学校就开始了招生周放假了,放假期间一起在外面玩也没怎么碰电脑,所以总结就拖到了现在。时间过的太快了,转眼已经大二了,再过两年就毕业了,剩下给自己的时间也没有多少了。回想去年,同队的两个大一队友一个已经不搞竞赛了,另外一个成了ctf的dalao,只剩下自己还在苦苦挣扎,挣扎了一年还是打了个铜。。。不管是去年还是今年的省赛都是感觉再稍微前进一点就能上升一个档次,去年是差在

2017-05-03 00:05:42 651

原创 codeforces 148D 【概率dp】

题目链接:codeforces 148D Bag of mice题意:一个包里面有w只白老鼠和b只黑老鼠,公主与龙依次从包中拿老鼠,每次取一只,当龙拿时还会从包中溜走一只,先拿到老鼠的获胜,当背包中没老鼠时且之前没人拿到白老鼠则龙获胜,问公主获胜的概率是多少。题解:设dp[i][j]为背包中有i只白老鼠j只黑老鼠时公主获胜的概率则公主获胜的情况分成三种:1.直接

2017-04-15 01:00:18 250

原创 poj 3071 【概率dp】

题目链接:poj 3071 Football题意:有2^n只足球队,已知你两两足球队间的胜率p[i][j](足球队i赢足球队j的概率),赛制为单轮淘汰制并且每轮中剩余队伍序号1与2对战,3与4对战,5与6对战...问n轮过后哪只足球队的胜率最大。题解:设dp[i][j]为第i轮第j只队伍获胜的概率,转移方程如下:dp[i][j] += dp[i-1][j]*p[

2017-04-14 23:42:45 272

原创 zoj 3777【状态压缩dp】

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3777题意:有n到题目,当第i到题目放在第j个位置时有p[i][j]点乐趣,问有多少种排列方法使n个题目的乐趣和大于m题解:一开始想用dfs,复杂度一算为 12! 铁定超时,后来就想到用状态压缩dp,但是我一开始想到的是dp[i][j

2017-04-13 00:00:13 398

原创 codeforces 219D 【树形DP】

题目链接:点击打开链接题意:给出一个有n个结点的有向无环图,问找到一点使能够逆转最少的边到达剩下n-1个点,并且输出所有这样的点题解:设dp[i][0]为第i个结点的子树中逆转边的数目,dp[i][1]为第i个结点的除子树外剩下要逆转多少条边。可以dfs两次,第一次求子树逆转边,第二次求除子树外的逆转边。#pragma comment(linker, "

2017-03-31 19:21:10 308

原创 hdu 2196 【树形DP】

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2196题意:求树上每个点与另一点的最远距离题解:设dp[i][0]为第i个结点的子树最远叶子结点距离,dp[i][1]为第i个结点的子树次远叶子结点距离,dp[i][2]为第i个结点通过父结点能到的最远距离。两次dfs,第一次保存dp[i][0]与dp[i

2017-03-31 17:11:00 225

原创 Poj 1655 【树的重心】

题目链接:http://poj.org/problem?id=1655题解:一开始建树时是取小的点指向大的点,然后一直WA后来发现这样建树是有问题的,可能会有(1,3)(2,3)这种出现1->3,2->3导致1、2不联通的情况出现。#include#include#include#include#include#include #include#inc

2017-03-30 22:42:15 311

原创 hdu 4515 【树的直径】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4514题解:先用一次dfs判断是否存在环,然后再枚举树的叶子节点找最长路。#include#include#include#include#include#include #include#include#include#include#include#in

2017-03-30 21:42:39 389

原创 codeforce 792D Paths in a Complete Binary Tree

题目链接:http://codeforces.com/problemset/problem/792/D题意:给出一个包含n个结点的完全二叉树,并且结点的编号是按中序遍历的顺序标号的,接下来有q个询问,每个询问包括一个点m表示你现在在编号为m的电上,和一个长度为u的字符串,字符串包括(U、L、R)表示向上、向左、向右,如果不能移动的话保持在原位。题解:观察中序遍历

2017-03-29 22:44:34 376

原创 蓝桥杯 两条直线【二分,线段树】

参考:http://www.cnblogs.com/mypsq/p/4410081.html(大致方法)http://blog.sina.com.cn/s/blog_3fd642cf0101cc8w.html(坐标系旋转后点的坐标公式)思路:将坐标系逆时针旋转45°,然后通过公式计算旋转后点的坐标,并且两直线变成了垂直旋转后的x轴和y轴。先按x坐标排序,然后二分答案d,每次

2017-03-21 23:08:19 1377

转载 tyvj 1505 打砖头

题目链接:http://www.tyvj.cn/p/1505原博客链接:http://www.cnblogs.com/zjerly/archive/2011/11/02/2232526.html题解:这个打砖头是很经典的题目。  一开始想着在题目给的形状上dp,结果发现这样的话会有三角形重合现象也就是动规有了后效性。  消除后效性要么转换状态,要么在状态里记录一下取数的情况

2017-03-15 18:25:03 268

原创 poj 1745 Divisibility

题目链接:http://poj.org/problem?id=1745题意:给出N个数a[i],在中间填上加号或减号,问能否出现一种填法使和能被K整除题解: 我们可以 bool dp[i][j] = true 表示前i个数的和可能出现j,再通过dp[i][j] = true 当dp[i-1][j-a[i]] = true 或 dp[i-1][j+a[i]]

2017-03-14 17:15:59 209

转载 tyvj 1753 [SCOI2005] 最大子矩阵

P2331 [SCOI2005] 最大子矩阵版权声明:本篇随笔版权归作者shenben(www.cnblogs.com/shenben)所有,转载请保留原地址!题目描述这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。输入输出格式输入格式: 第一行为n,m,k(1≤n≤10

2017-03-14 00:09:12 214

原创 tyoj 1051 选课

题目链接:http://www.tyvj.cn/p/1051题解:设dp[i][j] = 第i门课选课程j的最大学分,vis[i][j][k]标记第i门课选课程j时选修课k是否选择,par[i]表示i的先修课程(无先修课程的默认先修课程为课程0)则dp[i][j] = max(dp[i-1][k]+w[j])(vis[i-1][k][par[j]] && !vis[i-1]

2017-03-12 21:46:32 395

原创 tyoj 1073 加分二叉树【】

题目链接:http://www.tyvj.cn/p/1073题解:设dp[i][j] = 序号i~j构成子树的最大分值当我们取k为根节点时,因为给出中序遍历为1.2.3.4...n,所以它的左子树包含1~k-1,它的右子树包含k+1~n。得到dp[i][j] = min(dp[i][k]*dp[k+1][j]+a[k])然后再用tree[l][r]保存最大分值时l~r序

2017-03-11 22:26:50 360

原创 tyoj 1059 过河【压缩】

题目链接:http://www.tyvj.cn/p/1059题解:当L较小时有,dp[i] = dp[i-j] + (位置i是否为石头),(dp[i] = 跳至距离为i时最少跳几个石头)但是此题L较大,但是S,T,M较小,所以我们可以将两块较长距离的石头间的距离压缩,比如d > 200(d为两块石头间的距离)可以视作 d = 200,因为 S,T均小于10,当 d = 20

2017-03-11 21:11:24 451

原创 tyvj 1089 【背包转换 容量为负】

题目链接:http://www.tyvj.cn/p/1089题解:可以将a[i]看做背包体积,b[i]看做价值,然后按着01背包的思路求解。但是因为a[i]可能为负,所以要重新取0点,因为sum|a[i]| #include#include#include#include#include#include #include#include#include

2017-03-11 15:24:31 279

原创 LA Strategic Game 【最小点覆盖】

题意:给定一棵树,选择尽量少的结点,使得每个没有选中的结点至少和一个已选的结点相邻题解:只要保证每条边的两边至少有一个结点是被选中的就可以保证每个没有选中的结点至少和一个已选的结点相邻,其实就是最小点覆盖,跑一遍匈牙利算法模板即可,因为是无向图还要除以二#include#include#include#include#include#include #inclu

2017-03-07 22:13:44 202

原创 UVa 10817 Headmaster‘s Headache 【01背包 位运算】

题意:刘汝佳训练指南p95题解:此题可以设dp[s2][s1] = 授课状态为s2、s1时的最小花费(s1为课程授课状态为1的集合,s2为授课状态为2的集合)然后视招募的新老师为要装进背包里的物品,授课状态s2,s1为容量,最终答案就为dp[(1具体转移方程如下:设s2,s1为招募该老师前的状态,ns2,ns1为招募该老师后的状态则,ns1 = s1 | s ,ns2 =

2017-03-07 21:28:21 282

原创 Codeforces Round #403 C. Andryusha and Colored Balloons

题目链接:点击打开链接题意:给出n个点,(n-1)条无向边,问能否将点染色使所有点与其邻接的点以及距离为1的点的颜色不同(如:a与b存在一边,b与c存在一边,则a,b,c三点颜色应不同)题解:将图看做一棵树,对于一个节点的子节点我们先将选一个节点进行染色,染色的颜色选择则是从1开始不断++一直到与其父节点以及父节点的父节点颜色不同为止,然后再对这个子节点进行进一步深搜,因为

2017-03-07 21:02:23 218

原创 Codeforces Round #403 B. The Meeting Place Cannot Be Changed【二分】

题目链接:点击打开链接题意:给出n个人距最南端的距离Xi,与每个人的最大速度Vi,并且每个人可以向南或者向北走,问最少花多少时间可以使所有人到一点。题解:二分,判断取左区间还是右区间则是看最晚到达终点的人的初始位置是在终点左边还是右边,左边则终点应该往左,右边则终点应该往右。#include#include#include#include#include

2017-03-07 20:55:09 266

原创 UVa 10635 Prince and Princess 【LIS】

刘汝佳训练指南 p66这题很好的把LCS问题转化成了LIS问题因为两个数组保存的都是数字并且每个数组内不出现重合的数字,所以将B数组中的数字转化成在A数组中的编号然后就转化成了LIS问题了#include#include#include#include#include#include #include#include#include#include#in

2017-03-01 20:11:03 240

原创 Poj 3311 Hie with the Pie 【TSP+floyd】

题目链接:点击打开链接题解:先floyd算出各城市最短路径设dp[i][j]=在第i个城市且送过了集合j(按位存城市集合,比如5表示送过了城市2、0)个城市。然后枚举从小到大枚举j dp[i][j] = min(dp[k][j^(1最后答案就是 min(dp[i][(1#include#include#include#include#incl

2017-03-01 14:56:17 199

原创 点集配对 【dp 位运算】

刘汝佳训练指南P61#include#include#include#include#include#include #include#include#include#include#includeusing namespace std;#define MAX_N 110#define inf 0x3f3f3f3f#define LL long long#defi

2017-03-01 09:14:23 279

原创 三个串的最长公共子序列

直接放dsy大佬的思路:#include#include#include#include#include#include #include#include#include#include#includeusing namespace std;#define MAX_N 305#define inf 0x3f3f3f3f#define LL long long#defi

2017-02-26 22:26:42 628 1

原创 Poj 2955 Brackets 【区间DP】

链接:点击打开链接题意:最大括号匹配数题解:dp[i][j] = i~j最大括号匹配数如果s[i]==s[j],dp[i][j] = dp[i+1][j-1]+2否则 dp[i][j] = max(dp[i][k]+dp[k+1][j])(i=记忆化搜索:#include#include#include#include#inclu

2017-02-25 16:41:11 188

原创 Poj 3276 Face The Right Way

链接:点击打开链接题意:有N头牛朝着正面或反面,先有一个机器能够将连续的K头牛翻转,问K取多少时操作次数最少。题解:对于一个固定的K值我们可以枚举每头牛判断是否需要翻转,判断一头牛是否要翻转则需要知道它之前被翻转了几次与它初始状态,假如翻转次数为奇数初始状态为偶数或翻转次数为偶数初始状态为奇数则该头牛需要翻转,判断一头牛之前翻转了几次则可以在每次枚举牛时得到,假

2017-02-25 13:29:33 212

原创 Poj 1837 Balance【DP】

题目链接:点击打开链接题意:有一个最大长度为15的天平,上面有C个挂钩(左边的坐标为负,右边的坐标为正),现在有G个砝码,问将所有砝码挂上有多少总挂法能使天平平衡。题解:我们可以拿着砝码模拟一下操作,便可以得到这么一个状态转移方程:dp【i】【j】表示前i个砝码产生平衡位置为j的种数,dp【i】【j】 += dp【i-1】【j-c【m】*g【n】】(1但是由

2017-02-23 21:47:40 204

原创 Poj 1416 Shredding Company 【dfs】

链接:http://poj.org/problem?id=1416题意:输入两个数t和num,问如何分割后的num的和小于t并且与t最接近题解:按着题目思路敲就好了#include#include#include#include#include#include #include#include#include#include#in

2017-02-22 14:12:19 372

原创 codeforces 768C Jon Snow and his Favourite Number 【思维】

链接:http://codeforces.com/contest/768/problem/C题意:现在要对一个长度为n的数组a[i]进行k次的增强。每次增强是先对数组a进行排序再对间隔的对数组a XOR x题解:一开始我是想先那几组数据测试一下每次操作后数组变成什么样,后来发现全部数据都出现了长度2的循环结,于是后来直接顺着这个思路写,后来一提交发现并不是所

2017-02-22 08:49:59 420

原创 Poj 3274 Gold Balanced Lineup 【哈希】

链接:http://poj.org/problem?id=3274参考了: http://www.cnblogs.com/lyy289065406/archive/2011/07/30/2122224.html题解:最重要的是问题的转换,感受到了哈希查找的省时我最后是将∑C[i][1~K-1]%大素数作为哈希值#include#include#inclu

2017-02-20 22:39:50 224

原创 codeforces 767B The Queue【贪心】

链接:http://codeforces.com/contest/767/problem/B题意:Vasya要去护照,然而接待员在【ts,tf)的时间段内上班,处理一件业务需要花费时间t,并且有n个人在T【i】的时间去办护照,当Vasya与另一个人同时去办护照时,Vasya排在他的后面,问Vasya什么时候去等待的时间最少。题解:将n个人的办护照的时间段都计算出

2017-02-19 23:55:58 698

原创 codeforces 767C Garland 【dfs】

链接:http://codeforces.com/contest/767/problem/C题意:给出一颗树,每个子节点有个权值,问能否去掉两边生成三棵树,使这三棵树的权值和相等题解:设整棵树的权值和为sum,先dfs计算每个节点的子树权值和,然后再dfs从叶子向上找到一个权值和sum/3的节点,再将这个节点的所有祖先的权值和都减去sum/3,

2017-02-19 22:48:42 294

空空如也

空空如也

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

TA关注的人

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