04 2013 档案

NYOJ250 ROOM ASSIGNATION || POJ3667 Hotel
摘要:1 /* 2 Name: 3 Copyright: 4 Author: 5 Date: 28/04/13 21:55 6 Description: 7 刚开始做这道题的时候,第一感觉用线段树应该很容易实现,结果发现我没做过此类的线段树题目 8 然后上网看了别人的代码,才了有点思路,现总结如下: 9 这道题题意就是旅馆订房问题,由于牵扯到某一段区间的查找与运算,所以选择了线段树求解, 10 用free表示此段区间房间是否可用,lmax代表这段区间从左边起最长空闲房间数,rmax表示这段... 阅读全文

posted @ 2013-04-29 07:06 小花熊 阅读(460) 评论(0) 推荐(0) 编辑

HDU3535 AreYouBusy
摘要:1 #include<iostream> 2 using namespace std; 3 int Max(int a,int b,int c){ 4 if(a<b) a=b; 5 if(a<c) a=c; 6 return a; 7 } 8 int f[105][105]; 9 int main()10 {11 int n,T,i,j,k,m,s,c,g;12 while(~scanf("%d%d",&n,&T)){13 memset(f,0,sizeof(f));14 for(i=1;i<=n;i++){15 ... 阅读全文

posted @ 2013-04-27 20:01 小花熊 阅读(164) 评论(0) 推荐(0) 编辑

HDU2159 FATE
摘要:#include<stdio.h>#include<string.h>int d[101][101];int main(){ int i,j,t,flag,v,w,n,m,k,s; while(~scanf("%d%d%d%d",&n,&m,&k,&s)){ memset(d,0,sizeof(d)); for(flag=i=0;i<k;++i){ scanf("%d%d",&v,&w); for(j=w;j<=m;++j) for(t=1;t<=s;++t) .. 阅读全文

posted @ 2013-04-27 12:13 小花熊 阅读(158) 评论(0) 推荐(0) 编辑

NYOJ311 完全背包
摘要:初始化的细节问题我们看到的求最优解的背包问题题目中,事实上有两种不太相同的问法。有的题目要求“恰好装满背包”时的最优解,有的题目则并没有要求必须把背包装满。一种区别这两种问法的实现方法是在初始化的时候有所不同。如果是第一种问法,要求恰好装满背包,那么在初始化时除了f[0]为0其它f[1..V]均设为-∞,这样就可以保证最终得到的f[N]是一种恰好装满背包的最优解。如果并没有要求必须把背包装满,而是只希望价格尽量大,初始化时应该将f[0..V]全部设为0。为什么呢?可以这样理解:初始化的f数组事实上就是在没有任何物品可以放入背包时的合法状态。如果要求背包恰好装满,那么此时只有容量为0的背包可能被 阅读全文

posted @ 2013-04-27 10:29 小花熊 阅读(585) 评论(2) 推荐(0) 编辑

NYOJ289 苹果
摘要:原先用的滚动数组,现在用基本的动态规划,结果调试了很多次,发现了原因,贴上改正后的代码: 1 #include <stdio.h> 2 #include <string.h> 3 int v[1005],c[1005]; 4 int f[1005][1005]; 5 int max(int a,int b){ 6 if(a>b) return a; 7 return b; 8 } 9 int main()10 {11 int i,j,n,C;12 while(scanf("%d%d",&n,&C),n||C){13 memset 阅读全文

posted @ 2013-04-26 20:26 小花熊 阅读(218) 评论(0) 推荐(0) 编辑

蓝桥杯输出三角递增针
摘要:1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 int a[100][100]; 5 int main() 6 { 7 int i,k,m,n,cnt; 8 while(~scanf("%d",&n)){ 9 cnt=1;10 memset(a,0,sizeof(a));11 for(k=1; k<=(n+2)/3; k++)12 {13 for(i=k;i<=n-k;i++)14 ... 阅读全文

posted @ 2013-04-26 17:01 小花熊 阅读(191) 评论(0) 推荐(0) 编辑

NYOJ349 Sorting It All Out
摘要:1 #include<stdio.h> 2 #include<string.h> 3 bool map[30][30]; 4 int in[30],sort[30]; 5 int n,m,t; 6 bool f1,f2; 7 void solve(){ 8 int i,j,k,loc; 9 int temp[30];10 bool f=0;11 for(i=0;i<n;i++)12 temp[i]=in[i];13 for(t=i=0;i<n;i++){14 for(k=j=0;j<n;j++)15 ... 阅读全文

posted @ 2013-04-25 22:27 小花熊 阅读(221) 评论(0) 推荐(0) 编辑

POJ 1037 A decorative fence
摘要:#include<stdio.h>#include<string.h>char s[30];bool flag[30];int num;__int64 jc[30]={1};void init(){ for(int i=1;i<20;i++) jc[i]=i*jc[i-1];}void solve(int n,int k){ int i,j,t,temp; if(k==0) return ; temp=jc[k-1]; t=(n)/temp; if(n%temp==0) n++; for(j=0,i=1;i<=num;i++) ... 阅读全文

posted @ 2013-04-25 21:33 小花熊 阅读(289) 评论(0) 推荐(0) 编辑

第二届河南省大学生程序设计竞赛 Dr.Kong的机器人
摘要:Dr.Kong的机器人Dr.Kong设计了一个可以前进或后退机器人,该机器人在每个位置i会得到一个移动步数的指令Ki (i=1,2„N),聪明的机器人自己会判断是要前进Ki步还是后退Ki步。例如:给定指令序列(3 3 1 2 5),表示机器人在第1个位置时,可以前进3步到第4个位置,此时后退是不起作用的,出界;机器人在第2个位置时,可以前进3步到第5个位置,此时后退是不起作用的,出界;机器人在第3个位置时,可以前进1步到第4个位置,也可以后退1步到第2个位置等等。你认为,对给定的两个位置A,B, 聪明的机器人从A位置走到B位置至少要判断几次?【标准输入】第一行: M 表示以下有M组测试数据(0 阅读全文

posted @ 2013-04-25 21:19 小花熊 阅读(323) 评论(0) 推荐(0) 编辑

第二届河南省大学生程序设计竞赛 奇特的艺术品
摘要:奇特的艺术品Dr.Kong设计了一件艺术品,该艺术品由N个构件堆叠而成,N个构件从高到低按层编号依次为1,2,„„,N。艺术品展出后,引起了强烈的反映。Dr.Kong观察到,人们尤其对作品的高端部分评价甚多。狂热的Dr.Kong一激动,对组成该艺术品的N个构件重新组合,比如:把第6层到第12层的构件搬下来,想一想,然后整体放到剩下构件的第7层下面;过一会儿,又把第2层到第9层的构件搬下来,整体放到剩下构件的第1层下面等等。于是,Dr.Kong在进行了连续若干次“搬来搬去”后,还是这N个构件,又诞生了一件新的艺术品。编程:请输出新的艺术品最高十层构件的编号。【标准输入】第一行: N K 表示构件 阅读全文

posted @ 2013-04-25 21:16 小花熊 阅读(245) 评论(0) 推荐(0) 编辑

第二届河南省大学生程序设计竞赛 试题4 壮观的瓷器广场
摘要:【试题四】壮观的瓷器广场【问题描述】最近,某瓷都为了体现“千年瓷都” 的风貌,将要建立一个壮观的瓷器广场迎接来自各国的宾客。,顾问Dr.Kong提出了一项建议:在巨大的广场南面展示N件高度不等的瓷器灯柱。夜间,这些瓷器灯柱逐一闪亮,由低至高,如此场景必将十分的绚丽夺目。然而,在瓷器灯柱运来安放后,Dr.Kong才发现粗心的工人并没有按照从低到高的顺序安放瓷器灯柱。由于瓷器灯柱已经竖立起来,不可能全部推倒重新安放,人力又搬不动。因此,Dr.Kong只能借助巨型吊车每次将两个瓷器灯柱的位置小心翼翼地进行交换。 例如,有3个瓷器灯柱初始时高度顺序是:3 1 2。可以先用吊车交换后两个灯柱的位置,得到 阅读全文

posted @ 2013-04-25 21:12 小花熊 阅读(226) 评论(0) 推荐(0) 编辑

NYOJ7 街区最短路径问题
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<vector> 4 using namespace std; 5 int locx[25],locy[25]; 6 int main() 7 { 8 int N,i,j,n,ans; 9 scanf("%d",&N);10 while(N--){11 scanf("%d",&n);12 for(i=0;i<n;i++)13 scanf("%d%d",&locx[i],& 阅读全文

posted @ 2013-04-25 08:42 小花熊 阅读(234) 评论(0) 推荐(0) 编辑

最长公共上升子序列
摘要:最长公共上升子序列(LCIS)的O(n^2)算法预备知识:动态规划的基本思想,LCS,LIS。问题:字符串a,字符串b,求a和b的LCIS(最长公共上升子序列)。首先我们可以看到,这个问题具有相当多的重叠子问题。于是我们想到用DP搞。DP的首要任务是什么?定义状态。1定义状态F[i][j]表示以a串的前i个字符b串的前j个字符且以b[j]为结尾构成的LCIS的长度。为什么是这个而不是其他的状态定义?最重要的原因是我只会这个,还有一个原因是我知道这个定义能搞到平方的算法。而我这只会这个的原因是,这个状态定义实在是太好用了。这一点我后面再说。我们来考察一下这个这个状态。思考这个状态能转移到哪些状态 阅读全文

posted @ 2013-04-19 22:29 小花熊 阅读(211) 评论(0) 推荐(0) 编辑

POJ1131 Octal Fractions
摘要:1 #include<stdio.h> 2 #include<string.h> 3 char s[1000]; 4 int b[4000]; 5 int main() 6 { 7 int i,j,k,n,t,len; 8 while(~scanf("%s",s)){ 9 memset(b,0,sizeof(b)); 10 len=strlen(s);11 for(t=0,i=len-1;i>=2;i--){12 n=s[i]-'0';13 for(k=j=0;j<t||n;... 阅读全文

posted @ 2013-04-19 22:03 小花熊 阅读(261) 评论(0) 推荐(0) 编辑

NYOJ171 聪明的kk (动态规划复习)
摘要:1 #include<stdio.h> 2 inline int max(int a,int b){ 3 if(a>b) return a; 4 return b; 5 } 6 int main() 7 { 8 int n,m,i,j,c; 9 int f[21][21]={0};10 scanf("%d%d",&n,&m);11 for(i=1;i<=n;i++)12 for(j=1;j<=m;j++){13 scanf("%d",&c);14 f[i][j]=max(f[i-1... 阅读全文

posted @ 2013-04-18 22:01 小花熊 阅读(252) 评论(0) 推荐(0) 编辑

NYOJ 18 The Triangle (动态规划复习)
摘要:1 #include<stdio.h> 2 int f[105][105],c[105][105]; 3 inline int max(int a,int b){ 4 if(a>b) return a; 5 return b; 6 } 7 int main() 8 { 9 int i,j,n;10 scanf("%d",&n);11 for(i=1;i<=n;i++)12 for(j=1;j<=i;j++)13 scanf("%d",&c[i][j]);14 for(i=n;i>0;i--)15 ... 阅读全文

posted @ 2013-04-18 22:00 小花熊 阅读(258) 评论(0) 推荐(0) 编辑

最少硬币问题
摘要:1132: 最少硬币问题Time Limit: 1500 ms Memory Limit: 10000 kB Total Submit : 892(185 users)Accepted Submit : 240(131 users)Page View : 8986Font Style: Aa Aa Aa 设有n 种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。对任意钱数0≤m≤20001,设计一个用最少硬币找钱m的方法。编程任务:对于给定的1≤n≤10,硬币面值数组T和可以使用的各种面值的硬币个数数. 阅读全文

posted @ 2013-04-13 22:14 小花熊 阅读(3697) 评论(0) 推荐(1) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示