ZJU2014 Piggy-Bank

http://acm.zju.edu.cn/show_problem.php?pid=2014 这些天在做DP专题,所以从HDU转战到ZJU找DP,没想到第一个就A到这道题,感觉有点变态! 这道DP花了我三天时间(资质比较差,没办法),终于搞定了,哈哈!!! 其实前几天我A的几个DP都是一个模板的,核心思想都是一个模板的。而这道题有点区别: 1、题目要求是在存钱罐里存入一定质量的钱,使得最少可以存钱 2、存钱罐必须存满 #include<stdio.h>#include<string.h>int p[10001],q[10001];int price[501],weight[...
ACM | 2008-04-28 20:14 | 阅读 2857 次 | 评论 1 条

HDU1203 I NEED A OFFER!

http://acm.hdu.edu.cn/showproblem.php?pid=1203 虽然是01背包问题,但是完全可以用贪心解决此题,如果用了动态,我认为反而把简单问题麻烦化了 此解法时间效率不高,有时间再重新看看…… #include<stdio.h>int main(){ int m,n,a[1001],i,j,t; double b[1001],k[1001],t1,s; while(scanf("%d%d",&amp;m,&amp;n)!=EOF&amp;&amp;!(m==0&amp;&amp;n==0)) { for(i=1...
ACM | 2008-04-28 09:42 | 阅读 4409 次 | 评论 0 条

0/1背包问题动态规划详解

动态规划是用空间换时间的一种方法的抽象。其关键是发现子问题和记录其结果。然后利用这些结果减轻运算量。比如01背包问题。 /* 一个旅行者有一个最多能用M公斤的背包,现在有N件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为P1,P2,...,Pn.若每种物品只有一件求旅行者能获得最大总价值。输入格式:M,NW1,P1W2,P2......输出格式: X */ 因为背包最大容量M未知。所以,我们的程序要从1到M一个一个的试。比如,开始任选N件物品的一个。看对应M的背包,能不能放进去,如果能放进去,并且还有多的空间,则,多出来的空间里能放N-1物品中的最大价值。怎么能...
算法 | 2008-04-26 18:39 | 阅读 2651 次 | 评论 1 条

HDU1244 Max Sum Plus Plus Plus

http://acm.hdu.edu.cn/showproblem.php?pid=1244 #include< stdio.h >#include< string.h >int am[ 21 ]={0}, ansum[ 1001 ]={0}, lenam[ 21 ]={0}, an[ 1001 ]={0}, sum[ 21 ][ 1001 ]={0};int main( ){ int max, i, j, max_res, n, m; while( scanf( "%d", &amp;n ) != EOF &amp;&amp; n ) { scanf( "%d", &amp;m )...
ACM | 2008-04-26 18:38 | 阅读 3225 次 | 评论 0 条

HDU1003--Max Sum

http://acm.hdu.edu.cn/showproblem.php?pid=1003 #include<stdio.h>#include<string.h>int a[100001];void biggest(int w){ int i,m,r,s1,e1,s,e; r=-1000; m=0; s=1;e=1; s1=1;e1=1; for(i=1;i<=w;i++) { if(m>=0){m+=a[i];e=i;} else if(m<0){m=a[i];s=i;e=i;} if(m>r){s...
ACM | 2008-04-26 18:36 | 阅读 1326 次 | 评论 0 条

HDU 1257 最少拦截系统

http://acm.hdu.edu.cn/showproblem.php?pid=1257 求最长不降子序列问题 #include<stdio.h>#include<string.h>int c[1001][1001];int main(){ char a[1001],b[1001]; int i,j,la,lb; while(scanf("%s %s",a,b)!=EOF) { la=strlen(a); lb=strlen(b); for(i=0;i<la;i++)c[i][0]=0; for(i=0;i<lb;i++)c[0][i]=0; for(i=1;i<=la...
ACM | 2008-04-26 18:31 | 阅读 1931 次 | 评论 0 条

HDU 1723---Distribute Message

http://acm.hdu.edu.cn/showproblem.php?pid=1723 #include<stdio.h>#include<string.h>int main(){ int n,m,a[31],i,j,b; while(scanf("%d%d",&amp;n,&amp;m)!=EOF) { if(n==0&amp;&amp;m==0)break; for(i=0;i<31;i++) a[i]=1; for(i=n-1;i>0;i--) { b=0; for(j=i+1;j<=n&amp;&amp;j-i<=m;j++) b=b+a[j]*...
ACM | 2008-04-26 18:29 | 阅读 1046 次 | 评论 1 条

莫老师的一堂课

大学目标:找好工作,考研,出国。 在我们林学院,成绩好最多只是多拿点奖学金,对以后没什么用的。但是,我们不像是那些重点学校,成绩好可以保研。但是,像我们这些三流学校,成绩好能怎么样呢?我们要学好英语,学好数学,在其他地方有个建树!!! 我的目标是考研,今天看了一下浙大的考研网,很有冲动考浙大了!哈哈,定好目标啊!!!

itoa的用法

摘自:http://baike.baidu.com/view/982195.htm 功 能: 把一整数转换为字符串用 法: char *itoa(int value, char *string, int radix);详细解释:itoa是英文integer to string a(将整形数转化为一个字符串,并将值保存在a中)的缩写.其中value为要转化的整数, radix是基数的意思,即先将value转化为几进制的数,之后在保存在a 中.作用:实现数制之间的转化比较:ltoa,其中l是long integer(长整形数)备注:该函数的头文件是"stdlib.h" 程序例...
C | 2008-04-26 18:26 | 阅读 2302 次 | 评论 2 条

校赛后

一直很在意这次校赛的,毕竟是选拔去参加省赛的。机会难得,必须把握住啊!!!努力了将近一个学期吧,终于等到了这一天,如果不能参加省赛的话,那我之前的努力就白费了! 今天下午奋斗了五个小时,A了四道题,哈哈,比我预料的要多一道嘛!好开心! 最后名次是第五,到时候会取前六去参加省赛,不过还是要看两次的成绩的(据说还有第二次选拔)。这些天要好好准备下了,不然如果下次发挥不好的吧就要被刷了!拼了!!! 不过总的来说,校赛后感觉很轻松,上学期玩AC的时候,才在HDOJ上A了几道题就去比赛了,结果得了第八...
ACM历程 | 2008-04-26 18:25 | 阅读 1368 次 | 评论 0 条

(转)成为编程高手的八大奥秘

1、扎实的基础   数据结构、离散数学、编译原理,这些是所有计算机学科的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。因此多读一些计算机基础理论方面的书籍是非常有必要的。 2、丰富的想像力   不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想像力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。开阔的思维对程序员来说很重...
ACM历程 | 2008-04-26 18:24 | 阅读 1017 次 | 评论 0 条

牛人给的算法训练计划(转)

一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。 下面给个计划你练练: 第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来. 1.最短路(Floyd、Dijstra(会),BellmanFord) 2.最小生成树(先写个prim,kruscal要用并查集,不好写) 3.大数(高精度)加减乘除 4.二分查找. (代码可在五行以内) 5.叉乘、判线段相交、然后写个凸...
ACM历程 | 2008-04-26 18:23 | 阅读 1259 次 | 评论 0 条

qsort的用法(二)

qsort()用法整理 <排序都是采用的从小到大排序> <qsort函数包含在<stdlib.h>的头文件里,strcmp包含在<string.h>的头文件里>一、对int类型数组排序int num[100];Sample:int cmp ( const void *a , const void *b ){return *(int *)a - *(int *)b;}qsort(num,100,sizeof(num[0]),cmp);二、对char类型数组排序(同int类型)char word[100];Sample:int cmp( const void *a , co...
C | 2008-04-26 18:22 | 阅读 1339 次 | 评论 0 条

qsort的用法(一)

本文摘自http://hi.baidu.com/littlekid/blog/item/b36e82fb8e3c33204f4aeaa7.html 如有版权问题,请与我联系!谢谢 很多人问这个东西.我以前也看了好久,今天翻到以前学快排的时候写的练习code,基本上能覆盖绝大部分用法了. 里面有很多地方没判断相等的情况,按道理来说相等情况下应该返回0的,这个请看代码的时候注意.我尽量保证代码不出错了. 下面的这些说明和问题都是个人原创,没查什么资料,所以不保证其完全正确性,在此表示个人不对出现的问题负任何责任,大家WA了或者干吗的不要怪我,不过至少目前来说我用起来是没问题的 :) ...
C | 2008-04-26 18:19 | 阅读 3562 次 | 评论 0 条

sprintf的用法

选自《CSDN 社区电子杂志——C/C++杂志》 http://emag.csdn.net 2005 年1 月 总第1 期 - 93 - 本文作者:steedhorse(晨星) printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说 起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf 了解多 吗?在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。 由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中, 后者则直接在命令行上输出...
C | 2008-04-26 18:16 | 阅读 1039 次 | 评论 0 条
最新评论