- 博客(20)
- 资源 (19)
- 收藏
- 关注
原创 codeforces 322 B Ciel and Flowers
题目链接有红绿蓝三种颜色的画,每种拿三朵可以组成一束花,或者各拿一朵组成花束,告诉你每种花的数目,求出可能组成最多的花束。如果你的代码过不了,考虑一下 8 8 9这种组合。 因为数据量很大,我的思想就是局部和总体采用不同的策略。#include #include using namespace std;int main(){ int r, g, b; wh
2013-06-29 09:33:04 1935
原创 codeforces 322 A Ciel and Dancing
题目链接题意: 有n个男孩和m个女孩,他们要结对跳舞,每对要有一个女孩和一个男孩,而且其中一个要求之前没有和其他人结对,求出最大可以结多少对。如图,一条线代表一对,只有这样三种情况。#include #include #include using namespace std;int main(){ int n, m; while (ci
2013-06-29 09:27:59 1516
原创 hdoj 3555 BOMB(数位dp)
//hdoj 3555//2013-06-27-16.53#include #include __int64 dp[21][3], n;int len, bit[21];//dp[i][0] 长度为i 包含49的个数//dp[i][1] 长度为i没有49但以9开头的//dp[i][2] 长度为i 没有49void init(){ dp[0][2] = 1;
2013-06-27 17:00:18 1254
原创 hdoj 2089 不要62
这题数据量相对比较小,可以暴力打表解决。不过我这里用数位dp 刚开始学数位dp,参考了别人的代码。//2013-06-27-15.30#include #include int dp[7][3];//dp[i][0] 表示不存在不吉利的数字//dp[i][1] 表示不存在不吉利的数字,且最高位是2//dp[i][2] 表示存在不吉利的数字int bit[10];void
2013-06-27 15:42:58 1707
原创 poj 1164 放苹果
http://poj.org/problem?id=1664 这题可以用递归的方式做,想给第一个盘子里放上苹果从(0到m),然后给第二个放上,为了保证每次产生的放法是不同的,第二个里面放置的苹果不能从0开始,否则就会产生相同的放法,然后同理第三第四个盘子。。。。 还有一个问题,可能放到最后一个盘子了,还有很多苹果没有放,怎么办?? 都放最后一个里面?? 其实不是,这样的话可能和
2013-06-27 14:49:53 1646
原创 poj 1050 To the Max(最大子矩阵之和)
http://poj.org/problem?id=1050 我们已经知道求最大子段和的dp算法 参考 here 也可参考编程之美有关最大子矩阵和部分。 然后将这个扩大到二维就是这道题。顺便说一下,有时候不要把问题想复杂了,有些问题只能靠暴力求解,而这道题是暴力加算法。 在这个题中,我们可以把二维压缩到一维然后求解最大子段。我们先枚举所求矩阵的起点行和
2013-06-26 10:33:56 1560
原创 light oj 1011 - Marriage Ceremonies (状态压缩+记忆化搜索)
题目链接 大概题意是有n个男的n个女的(原谅我这么说,我是粗人),给你一个n*n的矩阵,第i行第j列表示第i个女(男)对第j个男(女)的好感度,然后要安排n对相亲,保证都是正常的(无搞基百合之类的),然后求怎么安排能使好感度和最大,求出最大值。 开始试了纯暴力的方法,时间复杂度是n!果断超时#include #include #include using
2013-06-25 22:15:40 1989 2
原创 codeforces 317 A Perfect Pair
A. Perfect Pairtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputLet us call a pair of integer numbers m-perf
2013-06-22 16:46:48 1519
原创 面试题精选:寻找最大的K个数
给你n个数,让你找出其中最大的K个数。解法1:很多人上来就对其进行排序,选用不同的排序方法有不同的时间复杂度,这里我们假设使用了最快的快排,时间复杂度为O(n*logn)。通过排序我摘出前K大的数。但也许快排不是最优的,我们只找最大的K个数,何必要对所有的数进行排序,我们只需要进行局部排序即可,时间复杂度大概是O(N*K)。但快排和局部排序谁优谁劣是并不是一定的,当
2013-06-19 22:18:03 2114
原创 codeforces 318 A.Even Odds B.Sereja and Array
A.Even Odds 给你n和k, 把从1到n先排奇数后排偶数排成一个新的序列,输出第k个位置的数。比如 10 3 拍好后就是 1 3 5 7 9 2 4 6 8 10 第3个数是5。//cf 318 A//2013-06-18-20.30#include using namespace std;int main(){ __int64 n, k;
2013-06-18 21:13:51 1447
原创 codeforces 315 B.Sereja and Array
地址B. Sereja and Arraytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputSereja has got an array, con
2013-06-13 20:11:44 1410
原创 省赛总结
虽然结果比我们预期的好一些,拿了银牌(本来感觉只能拿铜牌),但感觉还是很弱。 我们只A了三个最水的题目。 开始确实有些失策,晨晨看了第一题(给出等边三角形的两个点,计算第三个点),一道简单的计算几何,然后他就敲,40分钟还没搞定,我们没有考虑到我们有个计算几何的大牛成成博客,失策,他虽然敲代码的速度很慢,但效率极高,一上来就替我们A掉了第一题。感觉因为这个我们要浪费30多分钟
2013-06-13 19:38:58 1795 1
原创 codeforces 285C - Building Permutation
题目链接题目大意是有一个含n个数的数组,你可以通过+1或者-1的操作使得其中的数是1--n中的数,且没有重复的数。既然是这样的题意,那么我就应该把原数组中的数尽量往他最接近1--n中的位置放,然后求差绝对值之和,但有多个数,怎么使他们和最小,这样就要对其进行排序了,直接按大小给它们安排好位置,然后计算。//CF 285C//2013-06-06-19.57#include #in
2013-06-06 20:05:40 1514
原创 codeforces 299 A. Ksusha and Array
题目链接题目就是让你找出一个数组中可以将这个数组中所有数整除的数,很明显,如果存在,这个数肯定是最小的一个。//cf 299A//2013-06-05-20.51#include #include #include using namespace std;const int maxn = 100005;int a[maxn];int main(){ int n
2013-06-05 20:59:03 1471
原创 codeforces 304 B. Calendar
题目链接就是给你两个日期,让你求两个日期之间差多少天。我先算出两个日期分别是公元多少天,然后相减得到结果。//cf 304B//2013-06-05-18.38#include #include int y, m, d;int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int loop(int
2013-06-05 18:41:49 1593
原创 codeforces 304A. Pythagorean Theorem II
题目链接给你一个n,计算出1 ≤ a ≤ b ≤ c ≤ n.使得由abc构成的三角形满足勾股定理,c为斜边。没有简单的方法,直接爆力,但是要注意,有些abc满足勾股定理的表达式,但不一定是三角形,所以要判断一下,根据三角形三边的性质,两边之和大于第三边,两边之差小于第三边。//cf304 A//2013-06-05-18.14#include #include int mai
2013-06-05 18:18:36 1597
原创 codeforces 305 C. Ivan and Powers of Two
题目链接 给出一个非减序的数组a[n], 然后得到s=2^a1+.……+2^an, 要使s为2^v -1,需要在数组中添加几个数。 我的思路是这样的,由2^a+2^a = 2^(a+1)可知,如果有两个连续的数a,我们可以把他们合并为a+1放入集合中,使集合中没有重复的数,我可以用stl里的set。如果想要满足题目中的要求,集合中必须有最大那个数个元素,缺多少就可以计算
2013-06-05 17:26:14 1414
原创 codeforces 289 B. Polo the Penguin and Matrix
题目链接题目意思是在n*m的矩阵中,你可以对矩阵中的每个数加或者减d,求最少的操作次数,使得矩阵中所有的元素相同。虽然在condeforces中被分到了dp一类,但完全可以通过排序,暴力的方法解决。#include #include #include #include using namespace std;const int maxn = 10005;int a[ma
2013-06-04 17:11:51 1760
原创 hdoj 4572 Bottles Arrangement
题目链接虽然不知道怎么做,但是AC还是没有问题的。大概就是循环n次,从m加到m-n/2 除了最后一个数,每个都加两次。#include int main(){ int n, m; while (scanf("%d %d", &m, &n) != EOF) { int ans = 0; int t = m;
2013-06-03 19:45:58 1157
原创 100个经典的动态规划方程
1.资源问题1-----机器分配问题F[I,j] = max(f[i-1,k]+w[i,j-k]) 2.资源问题2------01背包问题F[I,j] = max(f[i-1,j-v]+w,f[i-1,j]); 3.线性动态规划1-----朴素最长非降子序列F = max{f[j]+1} 4.剖分问题1-----石子合并F[i,j] = min(f[i,k
2013-06-03 10:19:20 4588
workflow.zip
2019-08-19
《OpenCL异构计算》全书所有插图及实现代码
2013-04-19
红黑树 red-black
2013-04-19
acm Hdoj 离线版 1000-3000题 可搜索查找
2012-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人