自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ONE MORE TRY

把该做的做好就好了!

  • 博客(29)
  • 问答 (2)
  • 收藏
  • 关注

原创 lightoj1047 【简单线性DP】

因为写不出hdu3401...好像要用单调队列优化...这边水了一个...题意:给n个房子涂色,给出n个房子对应颜色的花费,问涂完所有颜色花费最少。保证相邻房子颜色不能相同。思路:dp[i][j] 表前i个房子,第i个房子是j颜色的最少花费;#includeusing namespace std;int dp[2][3];int a,b,c,n;int mai

2016-12-27 22:39:34 483

原创 HDU1059 【DP·二进制数优化】

题意:有6种不同价值的物品,然后问你能不能分成两半使得两堆价值相等;思路:一共有20000*6=120000 多的价值,总共背包有20000个,价值最大是120000,看看能不能DP到value/2就好了,所以DP数组可以开60000;价值乘以背包数,复杂度好大?我们知道一个数的组成可以搞成一个二进制,所以对于每个背包的数量,都可以搞成几个二进制数的背包数量那么就是有那

2016-12-26 16:55:04 568

原创 SPOJ PHT【二分】+SPOJ INUM【最小/大值重复】

BC 两道其实都是水 没有完整地想好直接就码出事情。wa了一次以后要找bug,找完要把思路理的非常清楚SPOJ PHT【二分】#includeusing namespace std;int main(){ long long n; int T,CAS=1; scanf("%d",&T); while(T--) { scan

2016-12-25 00:08:01 123

原创 玲珑学院1072 【DFS】

蛤蛤,略蠢。priority_queue 自定义优先级 和排序是反的struct node{ int x,y; friend bool operator< (node a,node b) { if(a.y<b.y) return 1; if(a.y==b.y&&a.x>b.x) r

2016-12-24 15:36:00 402

原创 HDU3433 【时间的二分+DP最优解】

crazy!

2016-12-23 23:26:18 632

原创 散列查找--解决冲突的方法

yep.

2016-12-22 22:57:45 1520

原创 SPOJ130 【DP·背包选取特性】

题意:给你n个任务,每个任务有一个起始时间,持续时间,一个权值;问你怎么分配得到最大值思路:数据好大。。百度了一发意识到自己好菜啊!背包的特性。dp[i]代表前 i 个能构成的最大值。对于每个任务看成一个背包,背包取的点是固定的背包取的话肯定是离他开始时间最近的那个点,dp[i]=dp[k(结束时间最靠近他的起始时间的点)]+w[i];不取的话dp[i]=dp[i-

2016-12-22 22:06:16 366

原创 Codeforces 749C【模拟】

FST的时候好像挂了挺多人的~其实思路没啥难的,就是更好地理解题意吧,1到n一直循环,直到没有人能vote,一个人能vote也能叉掉一个人,一个人被叉就不能vote,判谁赢。其实我管vote干嘛,我管好互叉就好了啊,直到局势一边倒,也就是不能叉了,谁多谁赢,这样肯定是要么D多R多,复杂度不大。#includeusing namespace std;typedef __int64 L

2016-12-21 18:44:32 599

原创 Codeforces 358D【DP】

思路: dp[i][0] 代表取的时候左边没有dp[i][1] 代表取的时候右边没有dp[i][2] 代表取的时候左右都没有dp[i][3] 代表取的时候左右都有然后自己转移吧= =、注意两个区间端点: 如果旁边有取a[i], 如果没有取b[i]。 只有一个的时候取a[i]。。。。太狗了,这题意!#includeusing namesp

2016-12-21 18:17:55 444

原创 Lightoj1122 【数位DP】

题意:给你m个数,让你在里面挑n个组合,保证位数相差不超过2,求能够组合多少种情况;思路:dp[i][j]代表第i个结尾为j的方案数。#includeusing namespace std;typedef long long LL;int dp[15][15];bool vis[15];int n,m;int main(){ int T,cas=1;

2016-12-19 18:01:59 105

原创 Codeforces 744C【DFS】

NO RESPONSE

2016-12-18 13:54:11 899

原创 HDU5997 【线段树】

good game.

2016-12-18 00:10:21 657

原创 codeforces743D 【DFS】

题意:给你一棵以1为root的根,然后让你求两棵不相交子树的最大和;思路:DFS,主要就是你一定得使两棵子树不相交;对于一个顶点u,维护以u为根的最大子树和。①:包含u,即所有的结点和。②:不包含,在子树内找一个最大子树。每次对于一个根搞搞就好了,维护一下答案;这个DFS真的赞。。一开始wa4还是那个没有保证子树不相交,后来RE5 and WA5 DFS的函数int

2016-12-15 17:52:05 601

原创 lightoj 1422【区间DP·分类区间首元素的情况】

题意:给你n天分别要穿的衣服种类,可以套着穿,一旦脱下来就不能再穿,求n天至少要几件。思路:区间DPdp[i][j]代表i到j需要至少几件衣服第i天的衣服在第i天穿上了,dp[i][j]=dp[i+1][j]+1,枚举区间(i,j],如果有第k天的衣服=第i天的,考虑第i件衣服在在第i天没穿(因为穿上了,第k天还需要穿么?)dp[i][j]=dp[i+1,k-1]+

2016-12-14 20:27:48 373

原创 lightoj 1125【背包·从n个选m个】

题意:给你 n 个背包,然后给你两个数,D,M,问你从n个里面挑M个出来,有多少种方法能够整除D;思路:试想我先不挑M个出来的话,仅仅是构造一个D的倍数,其实就是构造一个数的话,其实就是个递推,然后方案的叠加挑M个,D的倍数。能对M个状压;但是对于D的倍数呢?其实就是取膜就好了,比如5的倍数,那么dp[个数][j]+=dp[个数-1][j-X];

2016-12-13 16:47:37 478

原创 Lightoj 1147【DP】

题意:把n个人分成两部分,要你怎么分使得两部分尽可能相等;思路:如果我们把一部分人的重量达到离sum/2最近,那就一定行啊其实就是一条棒,两种不同的棒去拼接成一条棒,然后最好就是离mid最近,一定会得到这个值啊。然后搞出这个值,mid-x就是他们的最小差值。不就是一个0/1背包取或不取。然后wa了,人数相差不超过1个///后来肯定要维护人数啊,纯粹的+,dp[j]=dp

2016-12-12 18:52:50 594

原创 萌新学习笔记之线性表

线性表的定义:“线性表”(Linear List)是有同一类是类型的数据元素构成的有序的线性结构。线性表的顺序存储实现:线性表的顺序存储是指在内存中地址连续的一块空间顺序存放线性表的各元素。(萌新怒插:这不就是数组嘛???需要说的那么麻烦么???哦。)一维数组在内存中占用的空间就是一组连续的存储区域,因此,用数组来表示存储的数据区域是再合适不过的。为了体现数据组织的整体

2016-12-12 16:36:36 495

原创 lightoj1145 【DP优化求方案】

题意:有一个k面的骰子,然后问你n个骰子朝上的面数字之和=s的方案;思路:dp[i][j] 代表 前 i 个骰子组成 j 有多少种方案;显然dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j - 2] + ... + dp[i - 1][j - k];我们算 dp[i][j] 的时候,需要dp[i-1] 的前缀和已经打出来了我们求dp

2016-12-11 21:50:23 328

原创 Codeforces 625B【KMP】

题意就是一个串在另一个串出现几次,但是字符不能重复匹配, 比如aaaaaaa aaaa的答案是1思路:本来写了个暴力过的,然后觉得KMP改改就好了,就让队友打了一个;#include using namespace std;typedef long long LL;const int MAX=1000010;int n,m;char a[MAX],b[MAX];int ne

2016-12-11 21:46:37 474

原创 大二上训练总结吧

刚好顺应boss的要求,鶸写篇总结吧,最近又是因为期末了,好怠惰啊;看了看9月的博客,延续了暑假定下的plan开始狂刷(其实也才刷了一点)了51nod,然后搞懂摸熟了各种线段树,树状数组的离散化和码力也提高了,学了KM(其实很快就学会了。。。),和wonter巨巨一起打了几场CF和ATcoder,主要是补题吧,比如ATcoder那个E最短路,拆点的最短路+map的用法非常受益,也在wonter

2016-12-09 00:08:04 626

原创 HDU1080 【LCS变形】

题意:给你每种字符匹配的权值大小,给你两个串,长度小的串可以在小串里面添加空格和大串匹配,问你一个最大匹配权值。思路:有点类似于LCS吧,我们在求两个串的LCS的时候,不行的就扔掉了,在这里就是不行的就给他匹配了一个空格;dp[i][j-1]           j匹配空格;dp[i-1][j]           i匹配空格;dp[i-1][j-1]       i和j匹

2016-12-08 23:06:41 390

原创 Codeforces Round #383 【总结】

总结一下这场。。。搞起大号就崩了。。。A题没啥问题。。通过电脑到手机上提交没啥大问题;B题,讲个最严重的问题,也是最近以来最严重的问题,虽然我说你开了个数组,虽然这个数组是不是最终的答案数组,但是。。还是要考虑这个数组的范围啊,就像图的题目你为啥要注意邻接表结构体数组的大小啊,而且很恶心的是返回的是WA,而不是RE...注意每个变量的数据范围!!!还有就是题目注意点不搞好,i C题

2016-12-07 08:37:53 383

原创 Codeforces 174B【模拟构造】

题意:给你一个串只有小写字母和点,让你构造前缀是1-8,后缀是1-3长度的文件名;思路:那么以"."作为分割点,把字符串都拿出来,然后首段长度中间尾段否则都不行;啊,水题啊,wa了一次,T了一次,神TM都是数据开小了,一个是4e5写成5e4。。。一个是不满足的情况可能会很长,才开了。。。25...#include using namespace std

2016-12-06 16:46:01 425

原创 Codeforces 176B【计数DP】

题意:给你两个串s1,s2和一个K,有一种操作是在一个串切开然后交换位置,问s1有多少种方法经过K次这样的操作变成s2;思路:(从来没接触过计数DP...还是太菜...参考了【大牛blog】首先呢,不管怎么切怎么换,都是原串自己转来转去有没有???看到这个其实我还是不懂。。。。然后呢,我们搞一个DP数组记下数,纯粹就是计数的;dp[now][0]代表到第

2016-12-05 20:39:06 383

原创 Codeforces 67A【模拟】

题意:给一个字符串代表相邻学生的比较,L代表左边多,R表示右边多,=表示左右相等。保证每个人拿糖>=1,在分糖最少的情况下,输出每个学生所分得的糖。思路:模拟一下,第一个人一开始拿1个,然后模拟下去,如果是=,那就=前面的,如果是R,那就比前面的多一个,如果是L,最好的情况就是拿1个,但是有可能前面那个也是1,那么就往前更新,如果符号是=,前面那个等于现在的,如果是R,那么直接跳出

2016-12-04 21:35:05 381

转载 Codeforces325 D【并查集维护连通性】

参考:大牛blog思路:因为是环,所以可以复制一下图,先判断一下和他是不是和与他相邻的8个之一的一个障碍使得构成了一个环,环就是一个连通,用并查集维护即可;如果没有就ans++,然后并把这个点加入。大致意思就是这样。#include #include #include #include #include #include #include #include us

2016-12-04 15:42:32 627

原创 CodeForces 363D 【二分+贪心】

思路:一开始是没有办法贪心的,但是大致的思路就是我最好就是买价格便宜的车,这样肯定是能买到最多的车,而且花的少。所以直接二分答案。然后人的总花费=最有钱的那些人去买最便宜的那些车的情况;#include using namespace std;typedef long long LL;typedef unsigned long long ULL;typedef pairPI

2016-12-04 13:52:54 420

原创 Lightoj1084【DP啊DP】

题意:给你n个人的位置,每个人最多移动k个单位,然后在某点>=3人可以抱团,问你这n个人最少抱团数,只要有一个n不能抱团输出-1;思路:感觉又是超级超级狗血。。。。剪不断,理还乱。。。现对人的位置拍个序一开始想的是贪心,纯粹因为n1e5...,然后思路是对于每个位置搞一下,能延伸的最远距离,然后自然而然GG,位置没有办法。后面去想对于每个人,向两边延伸最长距离,然后状态

2016-12-02 09:44:21 285

原创 lightoj1062【几何(二分)】

其实就应该想到,哪有那么简单让你直接搞出答案的几何题啊;(而且很有可能是二分?题意:有两个梯子,一个靠在左边墙上,一个靠在右边墙上,长度分别为 x 和 y,他们的交点距离地面高度是 c,求两个梯子底部的距离。思路:二分底部距离,然后算C(通过相似三角形就好了,两个比值(C比梯子顶部到墙底的高度)相加是1),和C比较,很容易发现,底部距离一大,C就小,一小,C就大,满足单调性。

2016-12-02 00:11:12 413

空空如也

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

TA关注的人

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