- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 Codeforces Round #186 (Div. 2)
之前做codeforces经历了好几次掉分以后就决定暂时不做了,先去修炼。。。昨天自认为修炼的有点成效然后就去比了,做的时候状态还好,一小时不到把前三题做了,排到了400多,第四题看了半天,感觉是dp,但是没啥思路,所以上床睡觉去了,谁知道今天一早起来发现第三题挂了,更让人无语的是原因是我数组开小了,我真想骂自己是SB了,唉,多好的上分的机会。。。。A. Ilya and Bank Accou
2013-05-31 09:59:30 983 1
原创 hdu 1978 How many ways
思路:从位置(i,j)可以到达的所有位置的所有走法的数量会增加从开始到位置(i,j)的走法的数量,因此,递推公式为dp[k][l]+=dp[i][j];从头到尾扫一遍即可。 代码: #include #include#include#include#include#include#include#include#include#define inf 0x3f3f3
2013-05-27 18:42:15 565
原创 UESTC 1715 Harue's Child Mahjong Club
题意:四个美少女打麻将,给出牌堆的顺序,每个人的打牌都是最优的,求出最后谁会赢,若没有赢,输出"For round X, a Draw Hand occurs."思路:由于每个人打的牌都是最优的,因此,每次抓牌后判断是否能胡,不需要把牌打出去,看谁最先能够胡就是赢家。判断牌是否能胡可以用dfs遍历所有可能的胡牌方式,找出是否可以胡牌,另外,由于有特殊的胡牌方式(十三幺,七对),这两种牌型可以再
2013-05-15 14:17:40 1429
原创 UESTC 1709 Binary Operations
题意:给出n个数,随机选择一段连续的数,将它们进行and,or,xor运算,选择每一段数的概率是相同的,求这三个操作结果的期望。思路:可以将每个数都用2进制看,然后对每一位进行计算,计算三个结果结果为1的个数,然后乘以2^p,将每一位的结果相加,再除以总的选择的个数n(n+1)/2,即为该操作所得结果的期望。 用dpa[i]表示前i位and操作所得结果为1的个数。dpa
2013-05-14 21:58:57 944
原创 hdu 2844 Coins
题意:有N种硬币,每种硬币的价值是Ai、数量是Ci,问题是用这些硬币能表示多少m以内的价值。思路:背包问题,正常做是铁定会超时的,可以考虑用01背包+2进制优化。这样的话交上去437多ms,其实还有可以优化的地方,考虑到若Ai*Ci>=m,则可以看成硬币的数量是无限的,这种情况就可以看成是多重背包,优化以后时间可以降低到171ms。 代码:#include#include#in
2013-05-14 09:26:49 698
原创 hdu 2577 How to Type
题意:给出一个字符串,包含大小写字符,求打完这个字符串所需要的最少按键的次数。思路:比较简单的dp,dp[i][0]表示打到第i位字符后CapsLock关闭时最小按键的次数,dp[i][1]表示打到第i位字符后CapsLock开启时最小按键的次数。 因此可以得到状态转移方程: 当第i位是大写字母时: dp[i][0]=min(dp[i-1
2013-05-13 22:06:30 764
原创 POJ 3776 Passing the Message
题意:给出一个n个数的序列,求每一个数到期左右两边第一个比它大的两个数的这两个区间中的最大的数,若区间为0,则输出0,否则输出最大值所在位置。序列的位置从1开始计数。思路:首先进行预处理,lf[i]为每个数的左边比它大的第一个数的下标加1,rn[i]为每个数的左边比它大的第一个数的下标减1。由于一个数i的左边的区间的最大值的lf[j]等于lf[i],因此查找的时候只要找到一个数的lf[j]==
2013-05-12 22:38:49 875
原创 POJ 3771 World Islands
题意:给你n个点(坐标表示),求删除其中一个点的最小生成树中长度最小的那个。思路:由于n的范围是0~50,因此直接枚举每个点,然后求最小生成树,最后取最小值即可。 写的时候由于prime没写好,贡献了4个wrong……orz,真是伤心,看来我的基本功还是练得不够好啊。 代码: #include #include#include#include#include#
2013-05-12 22:06:33 1025
原创 UESTC 1717 Journey
题意:给你一颗顶点数为n的树,然后再给出一条边,连接这棵树的两个顶点。然后有q条询问,每条询问给出两个点a、b,问从a-b走最后给出的边是否能节省路程,若能则输出节省的路程,若不能输出0。思路:这道题我感觉自己想的比较麻烦,不知道有没有其他的算法。首先,由于这个图本来是棵树,加了一条边就形成了一个环,从a-b所走的路有两种情况: ①经过所给出的那条边
2013-05-12 21:43:14 1001
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人