15145641

上一页 1 2 3 4 5 6 7 8 ··· 18 下一页
摘要: 此题应该注意两个点,首先背包容量应该缩减为t-1,因为最长的歌不超过三分钟,而劲歌金曲有678s,所以肯定要留出这个时间来。其次注意优先级,保证唱的歌曲数目最多,在此前提下尽可能的延长时间。 处理方法:开创结构体,在歌曲数目相等的时候,选取最长时间。 注意:注意t的大小,t完全没有必要计算那么大的数 阅读全文
posted @ 2016-08-28 13:15 icode-xiaohu 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 每一个长方形都有六种放置形态,其实可以是三种,但是判断有点麻烦直接用六种了,然后按照底面积给这些形态排序,排序后就完全变成了LIS的问题。代码如下: 阅读全文
posted @ 2016-08-28 10:55 icode-xiaohu 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 分析:时间是一个天然的序,这个题目中应该决策的只有时间和车站,使用dp[i][j]表示到达i时间,j车站在地上已经等待的最小时间,决策方式有三种,第一种:等待一秒钟转移到dp[i+1][j]的状态,代价为1。第二种:如果可以则向右上车,转移到dp[i+t][j+1],无代价,t为列车行驶时间。第三种 阅读全文
posted @ 2016-08-27 20:45 icode-xiaohu 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 分析:求出最大值和最小值比较简单,使用贪心法,求最小值的时候我们让所有的0尽可能的向后延迟就可以了,求最大值则相反。 关键在于求出可以组合出的数字个数。 这就是组合数学版的dp了,我们让dp[i][j]表示当前i个0,和前j个1被接收后所能形成的数字个数,初始条件为dp[0][0] = 1; 决策有 阅读全文
posted @ 2016-08-27 16:39 icode-xiaohu 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 我这个英语学渣又把题给翻译错了……(话说,六级差十分没有过,好心疼T T),题目中说的P和Q都是计算game的个数,我以为是出现的次数,各种wa。。后来调整了以后又是各种wa,原来是double型的数据在排序的时候需要注意一下,我们需要给定一个精度,按照一定的规则来进行排序,比如当两个 rate < 阅读全文
posted @ 2016-08-27 16:17 icode-xiaohu 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题意:给出按照x坐标排序的n个点,让我们求出从最左端点到最右短点然后再回来,并且经过所有点且只经过一次的最短路径。 分析:这个题目刘汝佳的算法书上也有详解(就在基础dp那一段),具体思路如下:按照题目的描述比较难考虑,不如把这个问题想成两个人,分别从最左端走到最右端并且不走到重复的点所需要的最小路程 阅读全文
posted @ 2016-08-23 16:33 icode-xiaohu 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 方法:求出最近公共祖先,使用map给他们计数,注意深度的求法。 代码如下: 阅读全文
posted @ 2016-08-15 17:42 icode-xiaohu 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题目并不难,就是比赛的时候没敢去二分,也算是一个告诫,应该敢于思考…… #include<stdio.h> #include<iostream> using namespace std; int main() { long long n; scanf("%I64d",&n); long long l 阅读全文
posted @ 2016-08-15 17:36 icode-xiaohu 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 这个也可以说是一个01背包了,里面也有一些集合的思想在里面,首先dp方程,dp[i][j]代表着当前数值为i,j能否被构成,如果dp[i][j] = 1,那么dp[i+m][j] 和 dp[i+m][j+m] = 1,所以转移方程就写出来了,但是注意我们只能从后向前转移,也就是说我们一定要用选上一个 阅读全文
posted @ 2016-08-15 16:56 icode-xiaohu 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 这本来一个挺简单的题呢,结果让我给想复杂了,二分图就是把图分成了两部分,然后不同颜色各一边,肯定是满足题目中说的边和点的条件的,真是犯二了。。 代码如下: 阅读全文
posted @ 2016-08-15 16:51 icode-xiaohu 阅读(327) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 18 下一页