自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shaonianguai

一条大菜狗

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

原创 HDU1695 GCD 数论之 莫比乌斯反演

做了一段时间的DP,继续回头啃数论了,这是一道莫比乌斯反演的题目,比较繁琐给你a,b,c,d,k五个数,其中a=c=1固定的,让你从[a,b]中找出x,[c,d]中找出y,是的gcd(x,y) == k,注意gcd(x,y) 与gcd(y,x)归为同一种,问一共能找到多少组x,y;分析:因为gcd(x,y) = k,充要条件gcd(x/k,y/k) = 1,所以区间可以

2014-02-28 21:50:36 1266

原创 HDU2476 String painter 区间DP

给你两个字符串s1,s2,问 把s1变成s2最少需要几步?变的要求是连续的一段一起变化,语文不好表达不清楚可以看看这个博客对于案例的解释http://blog.csdn.net/libin56842/article/details/9708807给出两个串s1和s2,一次只能将一个区间刷一次,问最少几次能让s1=s2例如zzzzzfzzzzz,长度为11,我们就将下

2014-02-27 20:24:53 1123

原创 POJ3661 Running 动规

一个人跑步,n分钟,每分钟跑得距离不同并给出了,有一个累的程度,每跑一分钟累的程度+1,当这个值到达m时,必须休息,而且必须休息到疲劳度为0才能继续,每休息一分钟疲劳度-1,当他疲劳度没满时,他也可以选择休息,求n分钟疲劳度为0的时候能跑的最远距离,可以用二维DP解决,dp[i][j]表示 第i分钟疲劳度为j时的最大距离,最终解就是dp[n][0];第一个方程 :dp[i][j] = dp

2014-02-26 20:20:35 886

原创 POJ3280 Cheapest Palindrome 区间DP

给你一个字符串,把它变成回文串,可以添加字母也可以删除其中的字母,对于每一个字母添加和删除需要不同的花费,问使得这个字符串变成回文串最少需要花多少区间DP,从后向前推,如果区间[i,j]  s[i] == s[j],那么dp[i][j] = dp[i+1][j-1], 如果不想等 那么要么是加上一个 或者删除一个,在这里举个例子把,当推到abcb的时候,操作无非两种 删除a或者加上一个a,这两

2014-02-25 22:31:53 768

原创 POJ2955 Brackets 动态规划

区间DP,给你一个字符串,请输出最大匹配数*2,其中()匹配,[]匹配,本来的想法是分开写,不过是要正着找,一个是区间[i,j]若 s[i] == s[j]的时候,方程是dp[i][j] = max(dp[i+1][j-1] + 1,dp[i][k]+dp[k+1][j]),若不相等那就更好办了dp[i][j] = max(dp[i][j],dp[i][k] + dp[k+1][j]);这样是

2014-02-24 22:31:09 818

原创 LightOJ 1422 Halloween Costumes 动态规划

区间DP,鼻祖题目,认知了 什么事区间DP,题意有点难理解,有N个宴会,对于每一个宴会,女猪脚都要穿一种礼服,礼服可以套着穿,但是脱了的不能再用,参加宴会必须按顺序来,从第一个到第N个,问参加这些宴会最少需要几件礼服,拿第一个案例来说把41 2 1 2,有4个宴会,第一个需要礼服种类为1,第二个需要礼服种类为2,以此往下推:参加第一个宴会时穿礼服1,参加第二个时,礼服1不要脱下,直接把

2014-02-24 20:10:08 864

原创 POJ1833 排列

好久不见的中文题目,排列,组合数学,对许多人都是很头疼的,这道题目算是应验了 计算机就是让人偷懒的  这句话,其实在STL里,我们用过了vector,queue,stack,map等等,都比较好用的,尽管有些耗时,这道题目可以用STL中的next_permutation(opt1,opt2)排列函数来轻松解决,pot1是指向需要数组头地址,opt2代表需要排列的长度,而且排列完全符合题目要求的:如

2014-02-24 16:22:34 930

原创 FZU2148 Moon Game

给你一些点,让你找出不同的凸四边形的个数,一开始可能想到的是凸包,后来发现n只有30,所以可以暴力枚举,那怎么样来判断是一个凸四边形呢,只要排除凹四边形就可以了, 对于一个凹四边形,总存在一个点d,跟另外三个点a,b,c, 满足这样一个关系 Sabd+Sacd+Sbcd = Sabc,自己画图可以发现的,暴力枚举四个点,四个点中若任意找出一个 满足这个式子,那么它就不是凸四边形了,就排除,若都不满

2014-02-23 19:35:49 917

原创 POJ1141 ZOJ1463 Brackets Sequence 经典动态规划 区间DP

对于这道题目WA的我想说:老子裤子都脱了,你就给我看这个?! 开始做的时候,随意看了一下案例,就是左右括号可以匹配,题目给的字符串可能不是完全都有匹配的 比如 (([]),这里就是差了一个),应该补全了输出 (([]))思路还是比较简单的,区间dp,dp[i][j]表示 区间 i 到j之间的匹配数,在这里有特殊情况的 就是 这个区间是一个闭合区间,要判断区间两端的 字符是否可以刚好匹配,若可以

2014-02-22 21:43:42 915

原创 UVA 348 Optimal Array Multiplication Sequence 区间DP

题意:给你n个矩阵,让你连乘,怎么样处理先乘哪两个后乘哪两个 会导致计算次数最少,简单线性数学知识:矩阵乘法的 运算次数是跟乘的顺序有关的,并且输出来这个数据输出是比较繁琐的,还好前面做过几道 都是类似于记录路径 并输出的,所以很熟练的用递归解决了这是一道矩阵连乘问题,区间DP,典型的经典例子   有详细介绍的博客 :http://www.cnblogs.com/liushang041

2014-02-14 20:26:29 1031

原创 UVA10051 Tower of Cubes

一道跟LIS比较像的题目,但是只是类似,题意:给你一些立方体,按重量有小到达给出,每个立方体有六个面,并给出这六个面的颜色,现在让你堆立方体,每一个立方体必须比它下面的轻,而且两个接触的面必须颜色相同,思路,每一个立方体其实是有六种状态的,只要记录每一个立方体的上下两个面的状态即可,还要记录此时的上表面下表面是原来的上下左右前后面的哪一面和 它是第几个立方体,统计好所有立方体的状态直接开始 寻

2014-02-13 21:52:07 828

原创 UVA10534 Wavio Sequence

题意:给你一串序列,让你序列中找出 类似这样的  1 2 3 4 5 4 3 2 1 的最大长度的子串,子串特性:1长度可以写成2*n+1,其中前n+1的序列是严格上升的,后n+1个是严格递减的;一开始我的思路是这样的:第一遍先dp一遍,找出所有的递增序列,并且记录上升序列最后一个元素的位置,第二遍 从这些上升序列的最后一个元素的位置开始寻找,若能找到一个长度与上升相等的 下降序列就停

2014-02-13 19:22:12 773

原创 UVA10404 Bachet's Game

这题目做的有些较劲,题意:给你n个石头,Stan跟Ollie按顺序取,Stan先手,题目会给你m种取法,每次取石头的数目 必须从这m种中选取一个,假设Stan 和 Ollie 每次的取石头数目 都是最完美的意思就是 输赢一开始就因为 取法 和 石头数目决定了,不会因为人为原因而影响结果这题目一看,个人 认为是一道博弈的问题,所以开始较劲了,各种寻找sg值的方法,不停的去推去寻找 必败点

2014-02-12 21:45:37 888

原创 UVA437 The Tower of Babylon 动态规划

题意:给你N种立方体,每种立方体个数不限,让你堆塔,求塔最大高度,堆塔的条件是 每一个立方体的长和宽 必须严格大于它下面的立方体的长和宽,因为每个立方体个数无限,所以必须要进行排序了,不需要按照堆塔的条件来排序,可以按照底面积的大小来排,原因很简单,还有因为立方体个数无限,外加堆塔条件限制,其实就是每一种立方体又可以演变成 六种立方体,因为没有固定 哪个是高  宽 长,都处理好以后,一看就是一个

2014-02-11 20:46:28 962

原创 UVA10465 Homer Simpson 动规

吃一个第一种汉堡耗时m,吃一个第二种耗时n,给你 t 的时间,在尽量使得时间剩下少的情况下,问最多可以吃多少个汉堡,注意实在尽量是的时间剩下的比较少,意思就是 在能做到刚好把时间花完 是最优情况,以尽量多花时间为先决条件,用背包解决,在尽量耗完时间的情况下 再求 吃的最多,瞬秒#include#include#include#include#include#include#

2014-02-11 20:15:19 809

原创 UVA10130 SuperSale 多组01背包问题

题意:超市有一些东西,重量为wi,价值为vi,一家人去购物,每个人能背的重量有限,并给出每个人的承重能力,每个商品只能卖一次,使得一家人购物的价值最大,求出这个最大值,若是一个人去购物 那就是简单的01背包问题,多个人 那就是多组咯,以前没遇到过这种类型的题目,随意YY了一下,结果一把 A 过了,直接在01背包的 状态转移方程外 再嵌套一层循环即可#include#include#

2014-02-11 19:40:28 1057 2

原创 最长上升子序列LIS集合 POJ2533,POJ1631,POJ1887,POJ1609

POJ2533  赤裸裸的求最长上升子序列,复杂度为n^2的模版#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long#define eps 1e-7#def

2014-02-10 20:32:41 1122

原创 UVA10131 Is Bigger Smarter? 简单动态规划

UVA确实挺坑,交个题能卡半年,全是JE,不是中国的白天是美国的晚上吗?服务器有那么爆满吗?题意:一群大象,每头大象有两个属性1:体重 2:IQ,现在从这些大象里挑出大象来排队,队伍有两个要求,每一头大象的体重必须比前一头大,IQ必须比前一头小,求此队伍的最长长度,并列出队伍中大象的序号,序号按照输入给的顺序,序号从1开始如果我们只看体重 或者 IQ会发现 就是一个最长子序列问题,

2014-02-10 16:18:32 881

原创 UVA562 Dividing coins 动态规划

一道动态规划,不是很复杂,想到了处理写起来很简单,想不到还是毫无头绪的,给你n个钱币,并给出这些钱币的面值,尽量把它们按照总面值平分成两堆,求两堆钱币的总面值的 差的绝对值刚开始看到毫无思路,找不到边界值,不知道设DP数组,状态转移也找不出来,后来想到了用背包来解决,这些钱币的总值我们知道,所以我们可以把 钱币总值作为背包容量,将钱币放入背包中,但是dp数组不是用来记录 当前背包容量的

2014-02-10 10:59:55 906

原创 UVA116 Unidirectional TSP easy DP

一道DP,题意:一张图,从第一列走到最后一列,花费最小,每次只能向右下或右上或正右方走,每一步花费为当前格子值,要求输出最小花费,并按字典序输出路线的 行变换,这里的字典序要小心,因为这个图从第一行可以直接到最后一行,反之也可以,所以相当于同样的两张图上下拼接 思路:因为要输出路径,所以用DP做的时候得逆序来做,从最后一列找到第一列,状态转移方程很简单,边界也很好找:dp[i][n]=mp

2014-02-09 20:56:50 988

QT开发的小作品

QT开发小作品,小游戏,有两个,算是比较完善的了,代码具有注释可以自己看看

2015-12-29

AFNetworking2.5

AFNetworking框架 将文件夹中的名为 AFNetworking的子文件夹 添加到项目中去

2015-08-23

输出素数C++

设计一个程序,输入一个整数num(如num=120),降序输出小于num的所有素数,使用StackOfIntegers来保存素数(如2,3,5….),并利用它逆序获取和输出素数。

2014-11-10

MyInteger类

设计一个名为MyInteger的类,类包含: 一个名为valuede 的int型数据域,保存次对象表示的int型值 一个用指定的int型值创建一个MyInteger对象的构造函数 一个返回int型值的获取器函数 函数isEven()、isOdd()和isPrime分别在整数为偶数、奇数或素数的情况下返回真。 静态函数isEven(int)、isOdd(int),和isPrime(int)分别在给定整数为偶数、奇数或素数的情况下返回真。 函数equals(int)和equal(MyInteger)在本对象表示的整数值等于给定值的情况下返回真。 一个静态函数parseInt(string)将一个字符串转换为一个int型值。 画出类的UML图,实现类。编写一个客户程序,测试类的所有函数。

2014-11-10

TicTacToe游戏

2.(TicTacToe游戏)所谓TicTacToe游戏,就是两个游戏者轮流在一个3*3的棋盘的空位放入代表他们自己的棋子(可用X和O区分)。如果一个游戏者的棋子占据了棋盘的一行、一列或一条对角线,则游戏结束,此有学者获胜。当所有棋盘格都被填满,而没有任何一方能占据一行、一列或一条对角线,则为平局。编写一个玩TicTacToe的游戏程序,方式如下: 程序提示第一个游戏者放置一个X棋子,然后提示第二个游戏者放置一个O棋子。每当游戏者放置一个棋子,程序即刷新屏幕显示棋盘状况,并判断棋局状态(胜,平或尚未结束)。 为放置一个棋子,程序应提示用户输入棋子的行号和列号。 定义一个该类的友元函数print(),用来打印棋盘

2014-11-10

空空如也

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

TA关注的人

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