自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

发神经的猫的专栏

一只想当猿的猫的自嗨小天地

  • 博客(35)
  • 资源 (5)
  • 收藏
  • 关注

原创 leetcode-Nim Game

可以知道,石头总数n=4时,先手面对必败的情况。所以当n=5时,先手拿走1,让剩余石头总数为4;n=6时,先手拿走2,为7时拿走3;当n为8时,先手最多拿走3个,此时后手只要拿走1-3个让剩余石头数量为4即可必胜,因此n=8时先手必败。n=9时以此类推,可以看出当n为4的倍数的时候,先手必败,否则,先手只要保证拿的个数与后手相加为4(因为n不为4的倍数,n=4k+x,则x一定不为4),则可以保证必

2015-12-02 23:33:32 360

原创 HDU 5358 First One

思路:尺取法。根据数据范围可以知道⌊log2S(i,j)⌋的值可以取到[1,34],枚举每个i,用两个指针l,r将⌊logS(i,j)⌋的值相同的区间整段截取出来,再统计(i+j)的值即可得出结果。复杂度为O(34n)。2

2015-08-09 15:19:07 410

原创 hdu 5360 Hiking

思路:贪心。ans为现在已经邀请到的人数,则下一位应该邀请的人应该为符合条件的人(li #include #include #include #include #include #include #include #include #define N 1000005 #define M 1000005 #define LL long long #define mod 1000000007 #de

2015-08-09 00:41:16 489

原创 hdu 5363

有一个神奇的公式叫做二项式展开公式:,所以c(n,0)+c(n,1)+c(n,2)+........+c(n,n)=(1+1)^n=2^n,二项式展开公式有个神奇的性质:奇数项之和等于偶数项之和,所以假设1~n中有a个奇数,b个偶数,那么答案的个数即为(2^a*(2^b)/2)-1=2^(n-1)-1。 #include #include #include #include #include #

2015-08-08 16:43:18 439

转载 树上删边游戏(树上博弈)

树上删边游戏  1.游戏规则    从某一棵树上删除一条边,同时删去所有在删除边后不再与根相连的部分。双方轮流进行,无法再进行删除者判定为失败,也就是比你拿掉最后一部分你就赢了。一个游戏中有多棵树,我们把它们的根都挂在天花板上…或者说,放在地板上也行..这么做是为了方便后面的一些解释和处理。    在这篇文章中,我们讨论的将是公平游戏,也就是双方可以删除任意的边,我们称这个游戏为:Green

2015-07-27 13:25:38 1104

原创 HDU 5301 Buildings

简单题。。。#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #define N 10 #define M 30 #define LL long long #define mod 1000000007 using namespace std; int n,

2015-07-25 13:57:48 345

原创 HDU 5305 Friends

思路:总的来说,就是按边dfs+剪枝,具体见代码注释。 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #define N 10 #define M 30 #define LL long long #define mod 1000000007 using

2015-07-25 12:14:55 378

转载 LCA与RMQ

原址:http://dongxicheng.org/structure/lca-rmq/

2015-07-25 11:38:07 333

原创 HDU5289 Assignment

题目大意:问数组a中,区间[i,j]中最大值和最小值之差不超过k,问这样的区间有多少个。 思路:预处理出区间[i,j]中的最大值最小值(这里用的是ST算法,也有用线段树的),然后枚举左端点l,二分出符合条件的右端点r,以l为左端点,j为右端点(l #define _CRT_SECURE_NO_DEPRECATE #include #include #include #include #incl

2015-07-22 16:40:47 968

原创 HDU5288 OO’s Sequence

多校第一场就爆零了,蛤蛤蛤蛤蛤。。。。 题目大意:给一个数组a,f(i,j)表示ai到aj之间存在(这样的数)的个数,(这样的数)就是它不可以整除这个区间内其他的数,求数组a的所有的区间[i,j](这样的数)的个数之和。 思路:对ai,找到ai左边离它最近的和右边离它最近的可以被它整除的数,并用l[i],r[i]记录它们的位置,那么在包含ai的集合中,ai是(这样的数)的次数ans[i]=(i

2015-07-22 14:53:55 331

原创 codeforces 547A 548C

题目大意:有两个数h1,h2,每一次操作,h1=(x1*h1+y1)%m, h2=(x2*h2+y2),问多少次操作后,h1=a1,h2=a2,输出操作次数,不可能达到则输出-1. 思路:h=(x*h+y)%m,h的种类数是有限的,即h的值是循环出现的,这样我们就可以直接模拟,具体操作见代码注释。 #include #include #include #include #include #in

2015-05-27 15:30:27 813

原创 codeforces 548B

题目大意:给出一个n*m的矩阵,q个询问。每次询问改变(i,j)的状态(0改为1,1改为0),输出n行中最大连续为1的个数。 思路:直接模拟。最开始没有注意到要“连续为1”,wa了好多次。 #include #include #include #include #include #include #include #include #define mx 505 #define y1 y1234

2015-05-27 13:24:59 577

转载 POJ 1635

原博地址:http://www.cnblogs.com/rainydays/archive/2011/06/15/2081779.html 题意:给出两棵树的深度遍历序列,0表示远离根,1表示向根走。判断两树是否同构。 分析:利用树的最小表示, 定义S[t]表示以t为根的子树的括号序列 S[t]={‘(‘,S[c1],S[c2],…,S[ck],’)’ (c1,c2,…,c

2015-05-19 17:07:55 377

转载 POJ 2411 状态压缩DP

原博地址:http://blog.csdn.net/xingyeyongheng/article/details/21692655 分析:用1*2的砖去恰好铺满n*m的空间,对于第k行第j列,有3种情况将该点铺满 1:由第k-1行第j列砖竖着铺将第k行第j列铺满 2:由第k行第j列被横铺砖铺满 3:第k行第j列砖竖着铺将该点铺满 所以对于每一列的情况其实有两种(1,0)表示该点铺砖还是不

2015-05-19 13:55:07 405

原创 POJ 1260

题意:有c个种品质不同的珍珠,若要买某一品质的珍珠必须在你买的数量的基础上,多付10个这种珍珠的价钱,可以用高品质的珍珠代替低品质的。求要买到所有目标珍珠至少要花多少钱。数据保证按珍珠的价钱由低到高输入。 思路:易得珍珠的替代必须是连续的,不能跳跃替代。dp[i]表示考虑到第i类珍珠时所需要的最小花费,s[i]表示前i种珍珠的个数。状态转移方程为: dp[i]=(a[i]+10)*p[

2015-05-19 10:55:38 382

原创 POJ 1080

题目大意是:给定两组DNA序列,要你求出它们的最大相似度。每个字母与其他字母或自身和空格对应都有一个打分,求在这两个字符串中插入空格,让这两个字符串的匹配分数最大 思路:最长公共子序列变形 #include #include #include #include #include #include #include #include #define y1 y12345 #define mx

2015-05-18 15:03:47 366

原创 POJ 1050

题意:出一个矩阵(100×100)求一个子矩阵,使得子矩阵中各个元素的和最大。 思路:一维数组最大连续字段和的变形,具体思路见代码注释。 #include #include #include #include #include #include #include #include #define y1 y12345 #define mx 110 #define inf 0x3f3f3f3f #

2015-05-18 11:40:09 389

原创 POJ 1141

题意:求增加括号数最小的序列 思路:见代码注释 #include #include #include #include #include #include #include #include #define y1 y12345 #define mx 110 #define inf 0x3f3f3f3f #define LL long long #define ULL unsigned long

2015-05-18 10:18:20 403

原创 POJ 1015

题意: 在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n 个人作为陪审团的候选人,然后再从这n 个人中选m 人组成陪审团。选m 人的办法是:控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0 到20。为了公平起见,法官选出陪审团的原则是:选出的m 个人,必须满足辩方总分D和控方总分P的差的绝对值|D-P|最小。如果有多种选择方案的 |D

2015-05-15 11:50:49 408

原创 POJ 2479

原题链接:http://poj.org/problem?id=2479 题意:对整数串S,求其两个不相交的子串s1、s2,使得s1+s2的值最大 思路:见代码注释 #include #include #include #include #include #include #include #include #define y1 y12345 #define mx 50005 #defin

2015-05-14 19:11:00 350

转载 刷题刷题

POJ推荐50题   第一类 动态规划(至少6题,2479 和 2593 必做)  2479 和 2593 1015 1042(可贪心)1141 1050 1080 1221 1260 2411(稍难)1276  第二类 搜索(至少4题)  1011 1033 1129 2049 2056 2488 2492(稍难,也可并查集) 第三类 贪心(至少2题)  10

2015-05-14 17:37:59 1418

转载 最长递增子序列问题

原博客:http://www.cppblog.com/mysileng/archive/2012/11/30/195841.html 最长递增子序列问题:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i 设dp[i]表示以i为结尾的最长递增子序列的长度,则状态转移方程为: dp[i] = max{dp[j]+1}, 1 这样简单的复杂度为O(n^2),其

2015-05-11 14:22:25 427

原创 最大值最小化问题

题意:把一个包含n个正整数的序列划分成m个连续的子序列。设第i个序列的各数之和为S(i),求所有S(i)的最大值最小是多少? 思路:设s[i]中最大值的最小值是x,则很容易想出,x能取得最大值为全序列之和sum,x能取的最小值为a[i]中的最大值max,即x的取值范围为[max,sum]。然后要做的事情就是在[max,sum]中找到x,根据习惯尿性,红果果的二分查找。 #include #in

2015-05-06 15:29:51 1284 3

原创 UVaOJ 10003 Cutting Sticks

UVaOJ挂的我心塞。。。 题目大意:有一根长度为l的木棍,要把它从给定的n个点锯断,每锯断一次所需的费用等于木棍的长度,问锯完给定的点多需的最小的花费。 区间dp,dp[i][j]为锯i点到j点所需的最小花费,状态转移方程:dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+c[j]-c[i]); 只会写记忆化搜索,递推循环顺序傻傻搞不清楚,别人写的递推方法:h

2015-04-28 22:36:48 460 1

原创 UVaOJ 674 Coin Change

题目大意:给出5种面值的硬币1,5,10,25,50,问相加之和为n的组合个数。 最开始是想到DAG模型,于是酱紫循环了 for (int i = 1; i < mx; i++){ for (int j = 0; j < 5; j++){ if (i >= a[j]) dp[i] += dp[i - a[j]]; } }写完发现样例都过不了,才发现循环的姿势出问题了。 #def

2015-04-28 19:30:28 410

原创 软院校赛F题

大水题,题目大意a!和b^c比大小,1 #define _CRT_SECURE_NO_DEPRECATE #include #include #include #include #include #include #include #include #include #define mx 200005 #define LL long long #define mod 1000000009 #

2015-04-28 18:30:52 392

原创 POJ 1704

软院校赛的题目,比赛的时候欢快的过了30+队伍,果然还是差距颇大OTZ。

2015-04-28 18:18:59 456

原创 codeforces 538c

题目大意:一共n天,给出第m天爬到k米高,每天最多爬1m或者下降1m,求最高的可能性高度是多高 水水的数学题,因为k=1,画出来就是一个等腰直角梯形,算出公式即可。 另外,注意一下第一个记录距第一天,和最后一个记录距第n天也要考虑进去,最开始没考虑,wa了一发。 #define _CRT_SECURE_NO_DEPRECATE #include #include #include #incl

2015-04-27 22:07:58 860

原创 codeforces 538B

简单的水题硬是给我弄复杂了。。。 简单贪心解法在这里http://www.cnblogs.com/qscqesze/p/4458883.html 先把所有01组合列出来,然后动规解决的OTZ #define _CRT_SECURE_NO_DEPRECATE #include #include #include #include #include #include #include #incl

2015-04-27 12:11:31 550

原创 codeforces 538A

出题人红果果的秀了一回英语“it is possible to cut out of the banner some substring in such a way”,“some substring”的意思是某个子串,“some substrings”才是一些子串OTZ。 题目大意:给一个字符串,从中减去一个子串,是否能变成“CODEFORCES”,水题水水的过,要变成“CODEFORCES

2015-04-27 10:23:08 725

转载 【博弈论】阶梯博弈

原文地址:http://blog.csdn.net/kk303/article/details/6692506 首先是对阶梯博弈的阐述...博弈在一列阶梯上进行...每个阶梯上放着自然数个点..两个人进行阶梯博弈...每一步则是将一个集体上的若干个点( >=1 )移到前面去..最后没有点可以移动的人输.. 如这就是一个阶梯博弈的初始状态 2 1 3 2 4 ...

2015-04-26 23:06:25 611

原创 【博弈论】Nim游戏

转自百度百科 【定义】 通常的Nim游戏的定义是这样的:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此刻没有任何合法的移动)。 这游戏看上去有点复杂,先从简单情况开始研究吧。如果轮到你的时候,只剩下一堆石子,那么此时的必胜策略肯定是把这堆石子全部拿完一颗也不给对手剩,然后对

2015-04-26 22:42:42 411

原创 hdu 1754

线段树 单点更新#include #include #include #include #include #include #include #define mx 200005 #define LL long long #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 using namespace std; int ma[mx<<2]; int

2015-04-23 16:45:05 300

原创 hdu 1166

线段树 单点更新 #include #include #include #include #include #include #include #define mx 50005 #define LL long long #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 using namespace std; int sum[mx<<2]; i

2015-04-23 16:14:20 344

原创 Codeforces 535C Tavas and Karafs

大概是熬夜熬到脑子都不清醒了,废了九牛二虎之力才好不容易看懂题意,结果还是没做出来。 题意:一个等差数列,一次可以把m个数减一,有t次机会,问能使sl,sl+1,...,sr都为0的最大r。 思路:因为是一个递增的等差数列,直接二分答案。

2015-04-16 00:33:04 402

华南理工大学操作系统实验:实现一个unix命令解释程序

1.在linux中实现一个命令执行程序doit,它执行命令行参数中的命令,之后统计 1)命令执行占用的CPU时间(包括用户态和系统态时间,以毫秒为单位), 2)命令执行的时间, 3)进程被抢占的次数, 4)进程主动放弃CPU的次数, 5)进程执行过程中发生缺页的次数 2.在linux中实现一个简单的命令解释程序,功能要求: 1)同时支持内部命令和外部命令,内部命令支持两个(cd、exit) 2)支持后台命令

2015-12-15

华南理工大学操作系统实验:实现一个文件查找程序

仿照unix操作系统中的find命令,在实现一个myfind命令。myfind命令从指定的目录下开始,递归地查找指定文件。其命令格式如下: myfind PATH -option 参数 [-print] [-exec 命令 {} \;] PATH:查找的起始目录。 -option 参数:用来控制搜索方式,具体如下(以下只给我常用的):     -name "文件":指定要查找的文件名,可以有通配符?*等。     -prune 目录:指出搜索时不搜索该目录。     -mtime +n或-n:按时间搜索,+n:表示n天之前修改过的文件;-n:表示今天到n天前之间修改过的文件。     -ctime +n或-n:也是按时间查找,+n:表示n天之前创建的文件;-n:表示今天到n天前之间创建的文件。    -print:将搜索结果输出到标准输出。 可选的实验1:实现-exe选项。     -exec:对查找到的每一个结果实行指定的程序。格式如下:     -exec 程序名 提示:执行指定的程序可以创建一个进程执行

2015-12-15

华南理工大学操作系统实验:读者写者问题

教材中对读者写者问题算法均有描述,但这个算法在不断地有读者流的情况下,写者会被阻塞。编写一个写者优先解决读者写者问题的程序,其中读者和写者均是多个进程,用信号量作为同步互斥机制。

2015-12-15

华南理工大学操作系统实验:用线程实现睡觉的理发师问题

理发师问题的描述:一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理发师睡觉;第一个顾客来到时,必须将理发师唤醒;顾客来时如果还有空座的话,他就坐在一个座位上等待;如果顾客来时没有空座位了,他就离开,不理发了;当理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。

2015-12-15

华南理工大学操作系统实验:生产者消费者问题

参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。3个消费者不断地从缓冲中读取一个字符并输出。为了使得程序的输出易于看到结果,仿照的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。 可选的实验:在上面实验的基础上实现部分消费者有选择地消费某些产品。例如一个消费者只消费小写字符,一个消费者只消费大写字母,而另一个消费者则无选择地消费任何产品。消费者要消费的产品没有时,消费者进程被阻塞。注意缓冲的管理。

2015-12-15

空空如也

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

TA关注的人

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