2012年7月17日

农场灌溉问题(回溯)

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述:一农场由图所示的十一种小方块组成,蓝色线条为灌溉渠。若相邻两块的灌溉渠相连则只需一口水井灌溉。输入:给出若干由字母表示的最大不超过50×50具体由(m,n)表示,的农场图输出:编程求出最小需要打的井数。每个测例的输出占一行。当M=N=-1时结束程序。输入样例:2 2 DK HF 3 3 ADC FJK IHE -1 -1输出样例:2 3提示:参考迷宫问题,实现时关键要解决好各块的表示问题。#include<iostream>using namespace std;class BaseDate{ publ 阅读全文

posted @ 2012-07-17 18:32 IThinktan 阅读(1129) 评论(0) 推荐(0) 编辑

求图像周长(回溯)

摘要: 时限:1000ms内存限制:10000K 总时限:3000ms描述:给一个用 . 和X表示的图形,图形在上、下、左、右、左上、左下、右上、右下8个方向都被看作是连通的,并且图像中间不会出现空洞,求这个图形的边长。输入:首先给出m、n、x、y四个正整数,下面给出m×n的图形,x、y表示点击的位置,全0表示结束。输出:点击的图形的周长。输入样例:2 2 2 2 XX XX 6 4 2 3 .XXX .XXX .XXX ...X ..X. X... 0 0 0 0输出样例:8 18#include<iostream>using namespace std;int R,C;//行 阅读全文

posted @ 2012-07-17 18:07 IThinktan 阅读(626) 评论(0) 推荐(0) 编辑

活动安排(贪心算法)

摘要: 时限:1000ms内存限制:10000K 总时限:3000ms描述:Jack是一名nwpu的大一新生,对学校举办的各种活动都十分的好奇,想尽可能多的参加这些活动。Npwu每天共有N项活动,其开始结束时间分别为B[i],E[i],(i = 1,2,……N)请问Jack一天最多能参加几项活动。当然,Jack在同一时间内只能参加一项活动,即jack参加的活动时间上不能重叠,但时间为[t1,t2],[t2,t3]的两个活动是可以同时参加的。输入:第一行 一个整数N(1<=n<=1000)表示活动总数。接下来N行表示各活动的起始,结束时间0<=B[i]<E[i]<24输出: 阅读全文

posted @ 2012-07-17 16:28 IThinktan 阅读(889) 评论(0) 推荐(0) 编辑

子集(回溯)

摘要: 时限:1000ms内存限制:10000K 总时限:3000ms描述:有一集合中有 N 个元素,每个元素均为自然数。给定一个 total,求满足条件的所有子集,子集中各元素之和应等于total。输入:第一行一个整数表示有N个元素。第二行N个整数,表示集合里的每个元素。第三行一个整数表示给定的total。输出:输出所有的子集。每行输出一组可行的子集。每个元素之间有一空格,元素按从小到大排序。输入样例:61 2 3 4 7 104输出样例:1 34#include<stdio.h>int Arr[100]={0};//存放是否将第i个数选入子集int n,num[100],total;/ 阅读全文

posted @ 2012-07-17 15:59 IThinktan 阅读(357) 评论(0) 推荐(0) 编辑

找倍数(回溯)

摘要: 时限:1000ms内存限制:10000K 总时限:3000ms描述:对于每个输入的数字(如:2),则要求 给出一个由1,0构成的十进制整数,且该整数为输入数字的某个倍数,且是满足该条件的最小数(如2对应的10)。输入:数字n,n等于0时停止。输出:n的一个满足条件的最小倍数。输入样例:20输出样例:10#include<stdio.h>#include<stdlib.h>#define deep 20int n;//待查的数int Arr[20]={0};//存放由0,1构成的十进制数的每一位int Crr[20]={0},t=0;//用于保存int p;//标记串有效 阅读全文

posted @ 2012-07-17 11:13 IThinktan 阅读(780) 评论(0) 推荐(1) 编辑

六数码问题(回溯)

摘要: 时限:1000ms内存限制:10000K 总时限:3000ms描述:现有一两行三列的表格如下:A B CD E F把1、2、3、4、5、6六个数字分别填入A、B、C、D、E、F格子中,每个格子一个数字且各不相同。每种不同的填法称为一种布局。如下:1 3 52 4 6布局12 5 64 3 1布局2定义α变换如下:把A格中的数字放入B格,把B格中的数字放入E格,把E格中的数字放入D格,把D格中的数字放入A格。定义β变换如下:把B格中的数字放入C格,把C格中的数字放入F格,把F格中的数字放入E格,把E格中的数字放入B格。问:对于给定的布局,可否通过有限次的α变换和β变换变成下面的目标布局:1 2 阅读全文

posted @ 2012-07-17 08:44 IThinktan 阅读(848) 评论(0) 推荐(0) 编辑

2012年7月16日

六数码问题(广搜_队列)

摘要: 时限:1000ms内存限制:10000K 总时限:3000ms描述:现有一两行三列的表格如下:A B CD E F把1、2、3、4、5、6六个数字分别填入A、B、C、D、E、F格子中,每个格子一个数字且各不相同。每种不同的填法称为一种布局。如下:1 3 52 4 6布局12 5 64 3 1布局2定义α变换如下:把A格中的数字放入B格,把B格中的数字放入E格,把E格中的数字放入D格,把D格中的数字放入A格。定义β变换如下:把B格中的数字放入C格,把C格中的数字放入F格,把F格中的数字放入E格,把E格中的数字放入B格。问:对于给定的布局,可否通过有限次的α变换和β变换变成下面的目标布局:1 2 阅读全文

posted @ 2012-07-16 23:25 IThinktan 阅读(657) 评论(0) 推荐(0) 编辑

花生米(四)

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述:五一长假第四天,Tom逛了N个bbs,做了N^2个脑筋急转弯题,终于发现了每次吃完花生米嘴里都是苦味的原因:自己总会吃到最后一粒花生米。 五一长假第五天,Tom和Jerry在仓库散步的时候发现了n堆花生米(这是什么仓库啊?!)。这次Tom制定分花生米规则如下: 1、首先选出最苦的一粒花生米,放到一个瓶子里; 2、Tom和Jerry轮流从任意一堆花生米中取出任意粒吃掉; 3、如果Tom吃到最后一粒花生米(瓶子里的花生米除外),Jerry必须吃掉瓶子里的花生米;如果Jerry吃到最后一粒花生米(瓶子里的花生米除外),... 阅读全文

posted @ 2012-07-16 21:32 IThinktan 阅读(777) 评论(0) 推荐(0) 编辑

花生米(三)

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述:五一长假第三天,Tom和Jerry在仓库散步的时候又发现了一堆花生米(仓库,又见仓库……)。这次Tom制定分花生米规则如下:1、Tom和Jerry轮流从堆中取出k粒花生米吃掉;2、第一次取花生米的人只能取一粒,以后取花生米的数量不能超过前一个人取花生米数量的两倍;3、为显示规则的公平性,Jerry可以选择先取或者后取。Jerry当然还是希望最后一粒花生米被Tom吃掉。请计算,Jerry为了达到目的应该先取还是后取。输入:本题有多个测例,每个测例的输入是一个整数n,n大于零小于等于1000,代表花生米的数量。n等于0表示输入结 阅读全文

posted @ 2012-07-16 17:34 IThinktan 阅读(745) 评论(0) 推荐(0) 编辑

花生米(二)(DP)

摘要: 时限:1000ms 内存限制:10000K 总时限:3000ms描述:五一长假第二天,Tom和Jerry在仓库散步的时候又发现了一堆花生米(这个仓库还真奇怪)。这次Tom制定分花生米规则如下: 1、Tom和Jerry轮流从堆中取出k粒花生米吃掉,k可以是1,5,10中的任意一个数字; 2、为显示规则的公平性,Jerry可以选择先取或者后取。Jerry当然还是希望最后一粒花生米被Tom吃掉。请计算,Jerry为了达到目的应该先取还是后取。输入:本题有多个测例,每个测例的输入是一个整数n,n大于零小于等于1000,代表花生米的数量。n等于0表示输入结束,不需要处理。输出:每个测例在单独的一行内输出 阅读全文

posted @ 2012-07-16 13:45 IThinktan 阅读(795) 评论(0) 推荐(0) 编辑

导航