- 博客(21)
- 收藏
- 关注
原创 ACM总结
ACM课很难,这在上之前就有所耳闻,但依然抱有一丝希望,直到真正上了这门课。。。。。。。。。。。。。。虽然难,但我收获了很多。坚持下来,十分不易。比必修课还费劲。但对编程语言有了更深的了解,同时还对算法有了初步的了解。下面就是我对这门课程的一些简单总结。1,贪心算法算是第一次正式接触的ACM算法,刚开始理解起来挺难得,后来仔细看了课件,顿时有种“原来如此”的感叹。这时候刚刚开始接触
2016-06-30 23:39:30 184
原创 ACM课程总结
ACM这门课是在同学的聊天中了解的,当时感觉自己应该没什么问题,很有勇气的报了这门课,但随着学习的深入,突然发现不是这么一回事,发现这门课的难度对我来说史无前例,不管是高等数学,还是其他的一些科目,难度都远远不及,可是既然来了,就不能放弃,就这么一步一步的坚持了下来,到现在也是非常有收获,可能很多人会怀疑这门课的实用性,但我认为,它带给我们的思考的方式是无与伦比的,尽管只有这一学期的学习,但在费玉
2016-06-30 23:04:05 926
原创 练习三 T
题意:有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。思路:把多重背包转化为简单的01背包处理,减少复杂程度。感想:简单多重背包,没啥好说的。。。代码:[cpp] view plain
2016-05-31 21:18:11 214
原创 练习三 1017
概述:一个骨头收集者沿路收集骨头,每个骨头有价值和重量,收集者的背包容量有限,问他能收集的骨头的最大价值.思路:01背包模板问题.感想:无.#include#include#includeusing namespace std;int f[2002];int max(int x,int y){ if(x<y) x=y; return x;}in
2016-05-29 10:41:58 194
原创 练习三 1016
概述:在一无限大的二维平面中,我们做如下假设:1、;每次只能移动一格;2、不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走);3、走过的格子立即塌陷无法再走第二次;求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)思路:假设目的为向上走,第一步有三种走法,第二步有七种走法,如果最后一步向右走,那么只能是上一步向左走的
2016-05-29 10:38:21 247
原创 练习三 1015
概述:输入一个十进制数,输出它的二进制.思路:好吧..并没有用到动态规划,不过用到了位运算符感想:无#include using namespace std;int main(){ int a[12]; int base10; while(cin>>base10) { int dig=0; whil
2016-05-29 10:20:03 215
原创 练习三 1013
概述:有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?思路:由题目描述知,每头小母牛从第四个年头开始每年年初也生一头小母牛,则总的牛数为上一年的加上新生的,状态转移方程:dp[i]=dp[i-1]+dp[i-3].感想:无.#include #include #include usin
2016-05-29 10:17:01 211
原创 练习三 1012
概述:在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n=3时.思路:1*2的骨牌可以横着放或者竖着放,那么状态转移方程dp[i]=dp[i-1]+dp[i-2].感想:注意数据大小问题,有些需要定义long long.#includeusing namespace std;int main(){ int n;
2016-05-29 10:12:05 283
原创 练习三 1011
概述:有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数思路:同简单dp,和上一题基本一致,需要注意的是,由于数据较大,要使用long long数据类型。感想:无。#include #include#includeusing namespace std;long long dp[51];int main(){
2016-05-28 16:41:10 291
原创 练习三 1010
概述:有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?思路:简单dp。感想:无。#include using namespace std;int main(){ int n,a,i; int dp[10000]; cin>>n; while(n--) { dp[1]=0; dp
2016-05-28 16:38:20 220
原创 练习三 1007
概述:天上掉馅饼,0~9十个位置,第一秒只能在4,5,6,下一秒智能移动到相邻的位置,问最多能接到几个饼。思路:改变问法的的数塔问题,与1006差不多。感想:做题要会追其本源。#include#includeusing namespace std;int maxi(int a,int b,int c){ int max1; max1=a>b?a:b; m
2016-05-28 16:36:18 226
原创 练习三 1006
概述:数塔问题,求所能走的数字的最大和。思路:上课讲过的问题,可以从上向下,也可以从下向上,我用的从上向下,状态转移方程:dp[i][j]=data[i][j]+max(dp[i-1][j],dp[i-1][j-1]);感想:无。#include #include #include using namespace std;int data[1005][1005];int dp
2016-05-28 16:07:18 221
原创 练习三 1005
概述:猴子要吃香蕉,它有很多木箱子,每个箱子有长宽高,且每种箱子没有个数限制,放在上面的箱子的长和宽要严格小于下面的箱子的长和宽。思路;首先需要排序,将箱子长宽按从大到小排列,假设dp[i]是将第i个箱子放在最上面所能到达最大高度,dp[i]=max(dp[i],dp[j]+q[i].h),还有,一个箱子可以分为6种,不过可按排序简化了三种。感想:自己一直没想出来,只好在网上看的别人的代码
2016-05-28 15:50:28 210
原创 练习三 1003
概述:最大升序子序列和问题思路:循环列举开端位置,判断是否a[i]>a[i-1],最终比出最大值。#include#include#includeusing namespace std;int a[1005],dp[1005];const int inf =999999999;int main(){ int n,num,i,j; while(~scanf("%
2016-05-28 15:49:18 315
原创 练习三 1002
概述:求最大相同子序列长度问题。思路:动态规划,状态转移方程:a[i]==b[j]?dp[i-1][j-1]+1,max(dp[i-1][j],dp[i][j-1])。感想:一开始一直没想到应该是max(dp[i-1][j],dp[i][j-1])。#include#include#includeusing namespace std;char s1[1000],s2[1000
2016-05-28 15:43:15 255
原创 练习三 1019
概述:题目是真的没有怎么看懂,但是可以看出这是一道基础多重背包问题。思路:由于当时还没有怎么了解多重背包,所以直接将其转化为了01背包来做,并且二进制分解都没用,所幸数据较小,没有超时。感想:当时只自学了01背包,,,一切以01来做。#include #include #include using namespace std;int dp[255555];int va[500
2016-05-28 15:37:47 239
原创 练习三 1023
概述:Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且Speakless估计了他得到这个学校offer的可能性b。不同学校之间是否得到offer不会互相影响。“I NEED A OFFER”,他大叫一声。帮帮这个可怜的人吧,帮助他计算一下,他可以收到至少一份offer的最大概率。思路:典型的
2016-05-28 15:28:31 245
原创 练习三 1001
概述:最大子段和问题,不过同时让输出最大子段的开始和末端位置。状态转移方程:d[i]=(d[i-1]+a[i]>a[i])?d[i-1]+a[i]:a[i];max = {d[i],1感想:基础动态规划#include using namespace std;int get(int data[] , int &l , int &r , int dl){ int max
2016-05-28 15:26:41 228
原创 1012 Rescue
Rescue Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 117 Accepted Submission(s) : 35Problem DescriptionAngel was caught by the MOLIGPY! He
2016-04-24 19:02:15 180
原创 N皇后问题 1019
N皇后问题 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 101 Accepted Submission(s) : 50Problem Description在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允
2016-04-24 18:57:12 290
原创 1018 Tempter of the Bone
Problem DescriptionThe doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, and the doggie could feel the ground sinking. He re
2016-04-24 18:34:19 289
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人