自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

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