自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

坚持不懈

骐骥一跃,不能十步。驽马十驾,功在不舍!

  • 博客(39)
  • 资源 (3)
  • 收藏
  • 关注

原创 BestCoder Round #67 (div.2) 1001——N bulbs

题意:给定一个长度为n的灯泡的状态序列,经过每个灯泡时,都要开关一下(开变关,关变开),问能否在回到终点的条件下关掉所有的灯。思路:没出现一个为1的灯,都需要走奇数步来关掉它,而灯的总数为奇数的时候才能走奇数步,偶数同理。那么总数和1的个数同奇同偶时为YES。code:#include #include #include #include #include #

2015-12-27 21:10:29 495

原创 uva 10479——The Hendrie Sequence

题意:开始一个数0,然后0变成1,后边的变换规则是如果当前是k就在后边加上k-1个0,然后再加上k-1,该问题求该序列的第n个数是多少。思路:规律的题目。将串分成1,1,2,4,8,然后会发现s=1个s-2,2个s-3,3个s-4……然后n要用unsigned long long 。code:#include using namespace std;typedef

2015-12-24 20:54:21 670

原创 uva 10716——Evil Straw Warts Live

题意:给定一个字符串,然后判断最小经过若干次交换然后使这个串变成一个回文串(每次可以交换相邻两位)。思路:贪心。如果一个串的奇数字母的个数为奇数个,那么一定是不可能的。以开头和结尾作为两头不断枚举最小交换次数直到字符串的个数为2.code:#include #include #include #include #include #include #inclu

2015-12-24 20:28:04 289

原创 uva 10771——Barbarian tribes

题意:n个G族人和m个K族人做成一圈,编号1-n为G,编号n+1-m为K组人,没走k步杀死一个人,当杀死两个人的时候判断杀的两人相同组则在第二个位置补K组人,否则G,问最后留下的是什么组的人。思路:有三种情况1.杀GG补K,2.杀GK 补G,3.杀kk 补k, 可见K组人是以奇数个减小的,那么只需要判断m的奇偶性即可。code:#include using names

2015-12-24 20:16:12 347

原创 CodeForces 570B,C

CodeForces 570B题意:给定n和m,然后再(1-n)中随机取出c,求一个m使得  的概率最大,概率一样时输出最小的m。思路:只需要看1到m-1和m+1和n的最大的那一边就可以了,坑是n=1的情况和n为奇数m为n/2+1的情况要特判。code:#include #include #include #include #include #incl

2015-12-24 11:04:24 375

原创 CodeForces 572A,B,C

CodeForces 572A题意:给定两个序列,问能否从第一个序列取出k个数,从第二个序列取出m个数,使得第一个序列取出来的所有数都小于第二个序列取出来的数。思路:水。因为问的是存在,所以只要在第一个序列中取最小的k个和第二个序列中最大的m个,然后比较第一取出来最大是否小于第二取出来最小。code:#include #include #include #

2015-12-24 10:43:34 570

原创 uva 11012——Cosmic Cabbages

题意:给定n个点,然后求这n个点的两两间最大曼哈顿距离。思路:暴力枚举。直接枚举肯定不行,d=|x1-x2|+|y1-y2|+|z1-z2|,我们只要把绝对值拆开,变成d=(x1,y1,z1)+(x2,y2,z2)逗号表示+-号,然后八种情况中找出前面最大和后面最小的即可。code:#include #include #include #include #inc

2015-12-21 22:14:22 355

原创 uva 11269——Setting Problems

题意:一共有n个问题,每个问题都有相应的s和g段,必须先解决s,然后才能解决g,两个人解决问题,问怎么解决使得总耗时最小。思路:贪心。按照A.s+max(A.g,B.s)+B.g和B.s+max(B.g,A.s)+A.g;的ab先后顺序,排序即可。code:#include using namespace std;const int N=105;struct n

2015-12-21 22:07:30 1396

原创 uva 11387——The 3-Regular Graph

题意:给定n个点,然后构造一个n个点的无向图,每个点的度数为3;思路:由图论握手定理可知,每条边都会连接2个点,那么点数应为偶数个,奇数不可能,每个点为3度,那么有n*3/2条边,然后依次连接相邻的就可以了。code:#include using namespace std;int main(){ int n; while (~scanf("%d

2015-12-21 22:01:36 842

原创 uva 10396——Vampire Numbers

题意:给定一个n位数(思路:暴力。直接枚举这样的数,当满足条件的时候放到st的set里面就可以了。code:#include using namespace std;typedef long long ll;typedef unsigned long long ull;typedef long double ld;const int INF=0x3ffff

2015-12-20 20:51:03 585

原创 uva 10570—— Meeting with Aliens

题意:n个外星人坐在一起,然后问通过交换多少次位置可以使正向或者反向是一个有序的序列。思路:把n个外星人延长到2*n(因为有环),然后在1的位置上放1,2的位置放2,反向的话让序列倒过来重新操作一下即可。code:#include #include #include #include #include #include #include #include

2015-12-20 20:43:49 384

原创 uva 10120——Gift?!

题意:给定一条河的宽度n单位和要跳的位置m,每次要跳2*i-1单位,可以前后跳,问能否到达m。思路:搜索。河宽大于50的话是一定可以跳过去的,小于50的向下搜索一下就可以了。code:#include using namespace std;int n,m;int dfs(int s,int p){ if (s==m) return 1; int

2015-12-20 20:22:55 531

原创 uva 10602——Editor Nottoobad

题意:给定一些单词,然后让打印这些单词,复制前一个单词和删除当前的最后一个字母没有花费,问最小的打印花费。思路:贪心。排序后,检查当前和上一个单词有多少一样的,这部分的花费可以为0.也就是总的减去这部分的。code:#include using namespace std;string s[105];int main(){ int T,n; s

2015-12-20 20:13:54 491

原创 uva 11714——Blind Sorting

题意:给定n,在1-n中的范围里何以询问任意两个数的大小,问查找最大和次大至少需要多少次询问。思路:寻找最大需要n-1次,寻找次大需要不断二分区间,log2(n-1)的算法。code:#include using namespace std;int main(){ int n; while (~scanf("%d",&n)){ p

2015-12-20 20:06:51 537

原创 uva 10037——Bridge

题意:有一个桥,每次只能两个人拿着手电筒通过然后一个人拿着电筒回来,然后让新人过去,给出每个人的过桥时间,问最后总的最小时间。思路:贪心。1个人2个人好考虑,排好序,三个人是13,1,12,大于3个人的时候,考虑2i,2,12和1i,1,1i-1的最小值,然后不停-2直到得到可求的范围。code:#include using namespace std;const

2015-12-20 19:48:26 562

原创 uva 12222——Mountain Road

题意:有一个狭窄的山路,两辆车不能同时相向而行,并且同向的车的间隔不能小于10秒,给定一些车的起始时间,求最后一辆车离开的最短时间。思路:递推,dp(i,j,k)表示A端过了i辆车,B端过了j辆车,下辆车从k端走的情况,对于A端下一个车枚举i+1的车情况更新,B端则枚举第j+1辆车来更新。code:#include #include #include #inclu

2015-12-18 20:06:07 758

原创 uva 10559——Blocks

题意:有n个带颜色的方块,同种颜色的方块连成一个区域,每次可以消除一个区域的方块x,然后得到分数x2,右边的方块左移,然后问求最大的分数。思路:区间dp,dp(i,j,k)表示区间(i,j)在右边添上k个颜色与j相同的方块的最优解。对于每个状态,如果消去j,状态转移到dp(i,p-1,0)+(j-p+k+1)2,要不然枚举qcode:#include using na

2015-12-18 20:04:47 1000

原创 CodeForces 558A,B

CodeForces 558A题意:给定一些苹果树的位置和树上的苹果数,然后一个人站在原点,每次碰到苹果就往相反的方向走,问能得到的最大苹果数。思路:直接模拟即可。先假设往左走,然后再假设往右走。遍历一遍即可。code:#include #include #include #include #include #include #include #inc

2015-12-17 09:33:04 385

原创 CodeForces 560A,B,C

CodeForces 560A题意:给定一个货币系统,问不能组成的最小的钱数是多少。思路:水,只要检查有没有出现1即可,有则输出-1,否则1.code:#include #include #include #include #include #include #include #include #include #include #inclu

2015-12-17 09:15:29 466

原创 uva 1433——Garlands

题意:给定:

2015-12-13 21:46:08 340

原创 uva 1630——Folding

题意:给出一个由大写字母组成的长度为n的串,然后尽量折叠成一个尽量短的串,折叠可以嵌套。思路:区间dp,dp(i,j)表示区间(i,j)的最短的串的长度,as(i,j)表示i到j的答案,有两个状态要处理:1.该串本身是重复串,缩段到最短。2.该串不是重复,然后枚举他的分割点把两段最短找出来,然后合并。code:#include using namespace std;ty

2015-12-13 20:46:08 717

原创 uva 10271——Chopsticks

题意:有n只筷子,然后选出来k+8套(一套有三只,分别ABC),一套筷子质量为最小的两只的平方,选出的使得总的质量和最小。思路:01背包。dp[i][j]表示j套利选出来i套的最优解,每个都有选当前和不选当前两中状态。code:#include using namespace std;typedef long long ll;typedef unsigned l

2015-12-13 20:38:43 384

原创 uva 12589——Learning Vector

题意:输入n个向量(x,y),要求选出k个,从(0,0)开始画,使得画出来的折线与x轴围成的面积最大。输出面积的二倍。思路:01背包,dp[i][j]表示y的坐标为i且已经选了j个点的最大面积,然后10包选当前点和不选当前点的最大值。code:#include using namespace std;typedef long long ll;typedef un

2015-12-13 20:26:05 806

原创 uva 10163——Storage Keepers

题意:给定n个相同的仓库,有m个人轮流值守,第i个人的应聘者的能力为pi,如果应聘者看守k个仓库,则仓库安全指数为pi/k的整数部分,求使得所有最小安全系数最大且工人pi最小的设计。思路:二分+01背包。01背包找到x安全系数下是否能守住n个仓库,不断的二分k,找出最小安全系数最大的值,01背包维护最小的工资。code:#include using namespace

2015-12-13 20:16:13 584

原创 uva 1632——Alibaba

题意:直线上有n个点,其中第i个点的坐标是xi,且他会在di秒后消失,阿里巴巴可以从任意位置出发,求访问过所有节点的最短时间,不能输出-1;思路:01背包问题,dp(i,j,0)表示遍历过i,j区间且最终落在i点的最短时间,dp(i,j,1)是落在j点,然后找到从i和j到达当前的最优值,到达之前点消失则置为INF;code:#include using namespa

2015-12-13 20:04:58 645

原创 uva 1631——Locker

题意:有一个n位的密码锁,每位都是0——9可以循环旋转,每次可以往上或者往下旋转一下,然后给定初始状态和末状态求最小旋转步数。思路:递推,dp(i,x,y)表示翻到i位第i+1位为x,第i+2位为y的最小步数,枚举上翻状态,找到正翻和倒翻的最小值。code:#include using namespace std;#define cls(a,c) memset(a

2015-12-13 19:21:38 1024

原创 uva 10723——Cyborg Genes

题意:输入两个A-Z组成的字符串,找到一个最短的串,使得两个串均是他的子串。思路:最长公共序列问题。当i和j相等时,dp[i][j]=dp[i-1][j-1],不等时就是max(dp[i-1][j],dp[i][j-1]),如果当前的统计的数量大于s就置为s,否则加上s。code:#include using namespace std;#define cls(a

2015-12-13 19:11:32 483

原创 uva 242——Stamps and Envelope Size

题意:给定最大贴邮票上限和若干个邮票组合,求最大的连续邮资的一个组合,如果有多个,按字典序输出最大的一个。思路:对每一组邮票,求出当邮资为i时需要邮票数的最小值d[i],边界为d[0]=0、d[i]>s时break。属于01背包问题。code:#include using namespace std;#define cls(a,c) memset(a,c,size

2015-12-13 18:51:38 784

原创 uva 1629——Cake slicing

题意:有一个n行m列网格蛋糕上有一些樱桃,每次可以把蛋糕一刀切成两块,最后使每块蛋糕上都有一个樱桃且切割线总长度最小。思路:区间dp,记忆化搜索整个过程,然后分区间从上到下,从左到右,分区间递归找到找到满足条件的最小值。code:#include using namespace std;typedef long long ll;typedef unsigned

2015-12-13 18:34:20 565

转载 论ACM ICPC_Ruins He

这段时间老是有许多新人向我问到ACM相关的问题。比如它与工作的关系,对我以后的工作到底有没有帮助?还比如说第二年的训练计划应该是什么样的?还有的孩子问到,我寒假玩儿的一个寒假,又该怎么办?看到这些问题,我自己也感慨万千,一眨眼自己在这方面也涉猎了两年多了,经过那一段时间的纠结,最终还是决定第三年继续。大家选择ACM的理由的很多很多,为了以后方便找工作?充实生活?巩固学科基础?不管是为了功利

2015-12-11 19:19:04 410

原创 uva 1331——Minimax Triangulation

题意:三角刨分,把一个m边形分解成m-2个三角形,求一个最大三角形最小的刨分,输出最小的那个三角形面积。思路:递推。可能需要一点几何思维,d(i,j)为多边形的最优解,则d(i,j)=min(s(i,j,k),d(i,k),d(k,j));s(i,j,k)是三角形i-j-k的面积。然后枚举i,j,k求出最优即可。code:#include using namespac

2015-12-06 22:28:56 646

原创 uva 1625——Color Length

题意:给定两个长度分别为n和m 的颜色序列,要求按顺序合并成一个序列,即每次可以把开头的颜色放到新序列末尾,跨度l(c)等于最大和最小的位置之差。思路:递推,f(i,j)表示s1移走了i个元素,s2移走了j个元素的状态,g[i][j]表示当前还有多少个颜色是已经出现但尚未结束状态),状态转移方程f[i][j]=min(f[i][j+1])+g[i][j],比较蛋疼的是对原来串化成g的处

2015-12-06 22:14:53 866

原创 uva 12105——Bigger is Better

题意:给定n个火柴,求能够摆出的最大的数。思路:递推,dp(i,j)表示i根火柴拼出除以m余数为j的最大的数,然后递推用dp(i,j)*10+k更新dp(i+mp(k),(j*10+K)%m);lrj说大数精度问题,java乱搞搞过。。code:import java.util.*;import java.math.BigInteger;public class

2015-12-06 22:05:52 614

原创 uva 10934—— Dropping water balloons

题意:给定K个气球,然后n层楼的高度,求确定气球的硬度(站在多高能摔破)思路:递推。dp(i,j)表示最优,那么即dp(i-1,j-1)+1最优,如果K层没有破,则把K+1看成1层继续。得到转移方程dp(i,j)=k+dp(i,j-1)=dp(i-1,j-1)+dp(i,j-1);code:#include #include #include #include

2015-12-06 21:58:48 448

原创 uva 1252——Twenty Questions

题意:给定n个物品,每个物品用01串表示,表示具备与否某个特征,然后每次可以询问一个特征,问最少询问几次能够确定一个物品。思路:状压Dp,将这些数的特征压缩成一个数,把询问过的和没询问的都用一集合表示,然后枚举没有询问的记忆化搜索。code:#include #include #include #include #include #include #incl

2015-12-06 21:37:51 342

原创 uva 10817——Headmaster's Headache

题意:某个学校有m个老师和n个求职者,需要讲授s个课程,已知每个人的工资c和能交的课程,求花费最小使得每门课程都至少有两个人教。思路:状压dp,将每个老师要交的课程压缩成一个数,然后对于每门课,找到每个老师教与不交的最小状态即可。(因为INF还被坑了几次??)code:#include #include #include #include #include #

2015-12-06 21:34:04 293

原创 uva 1218——Perfect Service

题意:有n个机器组成的树形结构,要求一台服务器必须连接一台电脑,求使用的最少的服务器。。思路: 树形DP,和前面的有道题目类似。在dfs遍历树的时候找到选当前结点和不选当前节点的最大状态,多一个两个都不是而儿子是节点的情况。code:#include using namespace std;#define ft(i,s,t) for (int i=s;i<=t;i

2015-12-06 21:07:53 641

原创 uva 10118 ——Free Candies

题意:桌子上有4 堆糖果,要从这四堆糖果中取出5个,如果5个中有相同的颜色则把他们拿出来放到口袋,求最多放多少糖果。思路:DAG最长路问题。需要把问题转化成DAG的问题,以个数作为转移的状态,当达到5的时候为0,否则就是选当前的和不选当前的最大值。code:#include using namespace std;using namespace std;typ

2015-12-06 19:53:09 485

原创 uva 10285——Longest Run on a Snowboard

题意:在一个R*c的矩阵上找一条高度严格递减的最长路,起点任意,每次可以走上下左右。思路:DAG上的最长路问题,直接套用记忆化搜索的模板,dp(i,j)=max(dp(ii,jj)四个方向最大值),然后找出来最大的即可。code:#include using namespace std;using namespace std;typedef long long

2015-12-06 19:36:03 317

ThinkPHP3.2.1完全开发手册CHM[2014-02-14]

2017-04-20

ACM数论 课件

2017-04-06

windlx计算机体系结构模拟器

计算机体系结构模拟器,windlx

2017-04-06

空空如也

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

TA关注的人

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