自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

围巾的ACM博客

刚毕业~

  • 博客(77)
  • 收藏
  • 关注

原创 CodeForces 632D Longest Subsequence(数论)

题意:求一个最长子序列使得序列中的数的lcm小于m思路:lcm与数的顺序没有关系,所以我们记录每个数出现的次数,然后类似筛法一样去找每一个数的因子有多少个就好了#includeusing namespace std;const int maxn = 1e6+5;int cnt[maxn];int dp[maxn];int a[maxn];int main(){

2016-03-31 09:01:17 716

原创 CodeForces 632E Thief in a Shop(DP)

题意:给n个数,从中选k个(可以重复选)加起来,问最后有多少种不同的价值思路:看起来很像一个多重背包,然而要准确的选到k个是不简单的,比如1 2 3 4 5,k=3,那么dp[6]=2,可是显然6也是可以由1,2,3来组成,所以直接多重背包会丢失解,解决方法是每个元素都减去a[1],令dp[i]为选了dp[i]个数价值为i,那么如果只用了k-2就凑成i,那么剩下的2个可以由a[1]来补上去,那

2016-03-31 08:50:46 1114

原创 CodeForces 632C The Smallest String Concatenation

题意:给定几个串,问如何组合起来使得字典序最小思路:直接排个序就搞定了#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;const

2016-03-31 08:40:23 409

原创 CodeForces 632B Alice, Bob, Two Teams

题意:有n个物品,每个物品有一个分值,然后每个物品有一个标牌,如果标牌上是A,那么就属于A,是B,那么就属于B。现在你可以选择一个前缀或者后缀,然后将上面的A改成B,将B改成A,然后问你最多B能够得到多少思路:分别记录前缀和..#include #include #include #include #include #include #include #i

2016-03-31 08:36:57 506

原创 CodeForces 632A Grandma Laura and Apples(水题)

题意:有n个顾客买苹果,每个苹果p元half就是这个顾客买了一半的苹果halfplus就是这个顾客买了一半苹果,最后还送了他半个苹果最后恰好卖完所有苹果,问你赚了多少钱思路:倒着做就好了#include #include #include #include #include #include #include #include #include #include

2016-03-31 08:32:18 474

原创 UVa 10152 - ShellSort

思路:水...#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 100000#define LL long

2016-03-29 22:33:58 684

原创 LA3942 Remember the Word(字典树+DP)

题意:给你一串序列,再给一个n,再输入n个字符串,问这n个字符串随意组合有多少种组合可以变成原序列思路:令dp[i]为从i到str末尾有多少种组合,那么dp[i]=sum(dp[k+1])(k>=i,且区间[i,k]所构成的字符串是存在在原串中),由于需要大量的判断某个字符串是否是原串的前缀,所以建一颗字典树就可以啦#include #include #include #in

2016-03-29 22:27:43 363

原创 HDU 4283 You Are the One(区间DP)

题意和思路:参照大牛博客点击打开链接#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 100000#defi

2016-03-29 22:18:51 360

原创 HDU 2476 String painter(区间DP)

题意:给你一串字符串,一次可以修改一个或者多个连续的字符串,问最少操作多少次使得原串变成目标串思路:一开始完全不知道怎么DP...首先我们假设一个空串,先求空串变成目标串的最少次数,令dp[i][j]为i到j的操作次数,那么显然有dp[i][j]=dp[i+1][j]+1,如果目标串有s[i]==s[k],那么dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k+1][j

2016-03-29 15:52:17 532

原创 CodeForces 635C XOR Equation(数论)

题意:给定a+b的和,以及a和b的异或,问有多少组这样的(a,b)思路:百度到a+b=(a&b)*2+a^b,那么显然我们就可以把a&b的值求出来,那么根据a&b和a^b就可以统计出对数,另外注意的是当s==x的时候要特判减去2对包含0的情况#include #include #include #include #include #include #include #

2016-03-29 13:56:20 910

原创 CodeForces 635D Factory Repairs(树状数组)

题意:有n天,每天普通情况下可以产生b个东西,维修完机器的情况下可以产生a个东西,由普通的情况到好的情况需要k天的休息,就这k天啥也干不了,现在有q次询问现在你有两个操作          1 x y,表示订单第x天需要y个东西          2 x 在第x天进行休息,然后问你最多能够满足多少个东西的需求思路:直接树状数组维护一下,k天以前每个点的最大值为b,k天以后每个点的最大值

2016-03-29 13:47:47 408

原创 CodeForces 635B Island Puzzle

题意:给定一个字符串你,其中为0的字符可以和相邻的交换位置(环形),问可以不可以变换成给定的字符串思路:显然的交换并不会影响字符串的相对位置,所以记录一下相对位置就可以啦#include #include #include #include #include #include #include #include #include #include #includ

2016-03-29 13:43:27 525

原创 CodeForces 635A Orchestra(水题)

题意:给你一个rxc的矩阵,其中有n个特殊的点,问有多少个子矩阵可以满足特殊的点大于等于k思路:由于数据只有10....所以xib做就好#include #include #include #include #include #include #include #include #include #include #include #include #inc

2016-03-29 13:39:07 704

原创 POJ 1141 Brackets Sequence(区间DP)

题意:给出一串包含()[]的字符串你,你可以在任何位置添加()或者[],输出使得这个串合法的最终字符串思路:令dp[i][j]为i字符到j字符需要添加符号的最小个数,那么如果s[i]==s[j],说明他们已经匹配了,那么只需考虑i+1到j-1个字符,那么dp[i][j]=dp[i+1][j-1];  一般的,我们把i到j分成i到k,k+1到j的两个子序列,if (dp[i][j] > dp[i

2016-03-28 23:26:56 258

原创 CodeForces 3D Least Cost Bracket Sequence

题意:给你一串序列,有左括号右括号和问号,现在需要你把问号变成括号,求最小代价把这个序列变成合法的,如果没有则输出-1思路:直接暴力扫一遍,先将问号的都变成右括号,如果当前这个括号的位置#includeusing namespace std;priority_queue >Q;string s;int main(){ cin>>s; if(s.size(

2016-03-28 22:20:57 442

原创 CodeForces 3C Tic-tac-toe(模拟)

题意:XO游戏,现在给你一局游戏,让你判断是否合法,谁获胜,如果还没获胜,则输出下一步由谁走思路:模拟..细节很多#includeusing namespace std;string s[3];int check(char c){ for(int i=0;i<3;i++) { int win = 1; for(int j=0

2016-03-28 22:17:15 620

原创 CodeForces 3A Shortest path of the king(水题)

思路:水题,问从棋盘某点到某点的最短路径,并且输出,不难发现,能斜走就斜走,然后不断逼近目标就好了#include #include #include #include #include #include #include #include #include #include #include #include #include using names

2016-03-28 22:14:37 546

原创 Zoj 3537 Cake (DP最优三角形剖分)

题意:给定n个点的坐标,先问这些点是否能组成一个凸包,如果是凸包,问用不相交的线来切这个凸包使得凸包只由三角形组成,根据costi, j = |xi + xj| * |yi + yj| % p算切线的费用,问最少的切割费用。思路:先找个凸包模板打上,然后区间DP即可#include #include #include #include using namespace std

2016-03-27 20:58:39 371

原创 POJ 3280 Cheapest Palindrome(区间DP)

题意:给你一串字符串,你可以在字符串上对每一个元素进行增加或者删除的操作,分别给出每个元素增加和删除的代价,求最少代价使得这个字符串变成回文串思路:我们令dp[i][j]为i到j成为回文串的最小代价,对于s[i]有两种选择增加或删除,dp[i][j]=min(dp[i+1][j]+add[s[i]],dp[i+1][j]+del[s[i]]); 对于s[j]同样两种操作,dp[i][j]=mi

2016-03-27 17:36:28 260

原创 POJ 3661 Running(区间DP)

题意:给你N分钟,每一分钟可以走Di的路程,同时每分钟增加1的疲劳度,最多不能超过M疲劳度,对于每一分钟你就可以选择跑或者休息,如果休息的话只能休息到疲劳度为0的时候才能继续跑,问这N分钟你可以走的最远路程并且疲劳度为0思路:我们令dp[i][j]为第i分钟疲劳度为j时候走的最大路程,那么显然对于每一分钟有两种决策,要么跑,那么dp[i][j]=dp[i-1][j-1]+d[i],要么选择休息

2016-03-27 16:35:20 295

原创 poj1651 Multiplication Puzzle(区间DP)

题意:给出一串数字,第一个和最后一个数字不能抽取,每一次抽取一个数字得到的价值为这个数字和相邻两个数字的乘积,问把整个序列最后只剩下第一个和最后一个数字时的最小价值。思路:区间DP经典题,我们令dp[i][j]为第i到第j个数字去光后的价值,转移方程dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[j]*a[k])#include #i

2016-03-27 15:33:58 243

原创 CodeForces 637D Running with Obstacles(贪心模拟)

题意:有一个长度为m的跑道,上面有n个障碍物需要跳过去,每次可以跳D米,但是必须先跑S米,让你输出一种方案能让人跑完全程,否则输出IMPOSSIBLE思路:直接贪心模拟,能跑就跑,能跳就跳,不过细节挺多的得慢慢写#include #include #include #include #include #include #include #include #inclu

2016-03-27 11:39:34 521

原创 CodeForces 637C Promocodes with Mistakes(暴力)

题意:读题读得坑坑的...给你一个只含有6个元素的字符串,然后现在他们规定了一个东西,如果这两个串只有小于等于k个位置不同,就认为是一样的。现在要你规定一个k,使得下列的n个串都必须视作不同。输出最大的k。思路:数据范围只有1000....直接来暴力出奇迹...#include #include #include #include #include #include #

2016-03-27 10:46:59 1180

原创 CodeForces 637B Chat Order

思路:水题..其实就是把输入的字符串倒着输出就行了,加个map判重就可以了#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#defin

2016-03-27 10:44:21 1122

原创 CodeForces 637A Voting for Photos

思路:大水题#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define maxn 1000005#define LL long

2016-03-27 10:43:03 389

原创 LightOJ 1422 Halloween Costumes (区间DP)

题意:你要连续去很多个舞会,给出n个舞会你需要穿的衣服的编号,一旦脱下就不能再穿,但是可以一件套一件,问最少需要准备多少件衣服。思路:区间DP,令dp[i][j]为第i到第j天需要的衣服,那么对于第i天,如果考虑后面没有和它重复的话,那么dp[i][j]=dp[i+1][j]+1, 如果存在某一天a[i]==a[k],dp[i][j]=min(dp[i][j],dp[i+1][k-1]+dp[

2016-03-27 09:30:31 479

原创 POJ 2955 Brackets(区间DP)

题意:给你一串由()[ ] 组成的序列,问能匹配的最大长度是多少思路:区间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][j],dp[i][k]+dp[k+1][j])#include #include #include

2016-03-27 00:11:56 247

原创 HDU 1024 Max Sum Plus Plus(DP)

题意:给你一串序列,问你把这个序列分成m组的最大连续和为多少思路:最大连续和的升级版,我们令dp[i][j]为前j个数组成i个组的最大连续和,显然有两种决策,第j个数要么包含在i组中,要么另开一组,那么转移方程即为dp[i][j]=max(dp[i][j-1]+a[j],max(dp[i-1][k])+a[j]); (0#include #include #include #

2016-03-26 17:26:28 216

原创 CodeForces 645D Robot Rapping Results Report(二分+拓扑排序)

题意:有很多机器人,其中如果1号打败2号,2号打败3号,那么1号也可以打败3号,给你m场比赛的结果,问最少需要知道前几场就可以确定机器人的排名思路:二分答案,然后拓扑排序看看是否成一条直线即可#include #include #include #include #include #include #include #include #include #inclu

2016-03-26 16:55:06 657

原创 CodeForces 645C Enduring Exodus

题意:有n个房间,现在有k只牛和你来住,其中0代表空闲,1代表已经有人了,求大家相距的距离的最大值要最小。思路:最值最小或者最大问题,显然二分答案,然后直接暴力check即可#include #include #include #include #include #include #include #include #include #include #incl

2016-03-26 16:51:49 1009

原创 CodeForces 645B Mischievous Mess Makers

题意:给你1到n的一个序列,你可以执行k次操作,问操作完之后逆序数的最大值思路:贪心一发,对于每一次操作,肯定是交换第一个和最后一个,然后第二个和倒数第二个,这样显然最后的逆序数最多。对于每次操作的贡献度为2*(n-i-i)+1#include #include #include #include #include #include #include #include

2016-03-26 16:49:01 415

原创 CodeForces 645A Amity Assessment

题意:给你一个2X2的华容道你,问能不能通过初始给出的棋盘然后变换到最后的棋盘思路:由于是一个2X2的...所以怎么做都可以..留意到每个棋子的移动其实都是顺时针或者逆时针的就好做了。#include #include #include #include #include #include #include #include #include #include

2016-03-26 16:46:16 493

原创 hdu4027 Can you answer these queries?(线段树)

题意:给定区间,将区间的每个值都变为原来的平方根,查询区间和思路:线段树维护即可,用allone表示该数或者该区间是否需要更新注意:输入时候的L可能会大于R.....#include #include #include #include #include #include #include #include #include #include #includ

2016-03-25 20:05:07 252

原创 CodeForces 4D Mysterious Present(DP)

题意:你有一张长宽为x,y的卡片同时有n个盒子,长宽分别为xi,yi。然后问你卡片最多塞多少层盒子并且把这些盒子按照从里到外输出。思路:由于数据给小了,所以n^2的DP也是可以水过的~#include#includeusing namespace std;const int maxn = 5005;int x[maxn],y[maxn],dp[maxn];int p[ma

2016-03-25 19:31:21 407

原创 POJ 3264 Balanced Lineup

思路:线段树求最大值减最小值,每个结点分别维护最大值和最小值即可。#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define ma

2016-03-25 19:28:45 263

原创 CodeForces 4C Registration systems

题意:输入一系列字符串,如果之前没出现过则输出OK,如果之前输出过,则输出这个字符串+出现的次数在后面思路:用map随便搞搞#include #include #include #include #include #include #include #include #include #include #include #include #include

2016-03-22 00:23:23 289

原创 CodeForces 4B Before an Exam(DP)

思路:令dp[i][j]为做了i天用了j时间,然后随便转移一下就可以了#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define

2016-03-22 00:20:12 395

原创 CodeForces 4A Watermelon(水题)

题意:给一个n,问能不能把这个n分成两个偶数的和思路:先分一个2出来,然后看看剩余的是否为偶数即可#include #include #include #include #include #include #include #include #include #include #include #include #include using namespa

2016-03-22 00:18:30 582

原创 hdu2086 A1 = ?

思路:推公式题....#includedouble a[3005],c[3005];double sum;int main(){ int n; while (scanf("%d",&n)!=EOF) { scanf("%lf%lf",&a[0],&a[n+1]); for (int i= 1;i<=n;i++) scanf("%lf",&c[i]

2016-03-20 16:27:30 427

原创 hdu2084数塔(DP)

思路:简单的数塔DP#include #include #include using namespace std;int a[105][105],dp[105][105];int main(){ int t,n,i,j; scanf("%d",&t); while(t--) { scanf("%d",&n);

2016-03-20 16:25:54 479

空空如也

空空如也

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

TA关注的人

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