题目:N皇后加强版
摘要:题目描述经典问题。N皇后问题(加强版)皇后们想知道自己到底有多少种排列方式。国际象棋中规定:皇后对角线互能攻击。有两个皇后位于同一行或者同一列都不符合要求。!也就是说,把N个棋子被放置在棋盘上,使得每行、每列只有一个,每条对角线(包括两条主对角线的所有对角线)上至多有一个棋子下面给出一个例子列号1 2 3 4 5 6-------------------------1 | | O | | | | |-------------------------2 | | | | O | | |-------------------------3 | | | | | | O |---------------
阅读全文
posted @
2011-12-31 23:46
怡红公子
阅读(411)
推荐(0)
题目:数列
摘要:题目描述给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:1,3,4,9,10,12,13,…(该序列实际上就是:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,3^0+3^1+3^2,…)请你求出这个序列的第N项的值(用10进制数表示)。例如,对于k=3,N=100,正确答案应该是981。输入格式输入只有1行,为2个正整数,用一个空格隔开:k N(k、N的含义与上述的问题描述一致,且3≤k≤15,10≤N≤1000)。输出格式输出为计算结果,是一个正整数(在所有的测试数据中,结果均不超过
阅读全文
posted @
2011-12-31 18:36
怡红公子
阅读(207)
推荐(0)
题目:FBI序列
摘要:题目描述两伙外星人策划在未来的XXXX年侵略地球,侵略前自然要交换信息咯,现在,作为全球保卫队队长,你截获了外星人用来交换信息的一段仅由'F','B','I','O',组成的序列,为了保卫地球和平,为了使家园不受破坏,你要机智地破解密码,勇敢地迎击外星人!记住,你不是一个人在战斗!你不是一个人!你的背后是千千万万的地球人!输入格式一组仅由'F','B','I','O',组成的序列('F','B','I','O
阅读全文
posted @
2011-12-28 20:06
怡红公子
阅读(619)
推荐(0)
题目:找试场
摘要:题目描述小王同学在坐标系的(0,0)处,但是他找不到考试的试场,于是一边走路一边问路,每个被问路的人会告诉他一个指令(包括走路或转弯),现在请编一个程序,显示他每次走路后的坐标(转弯后不必显示坐标)。数据范围对于50 %的数据,0<n <=20,对于100 %的数据,0<n <=500, 所有数据都在longint范围内。输入格式第一行一个数n,表示有n个指令,接下来n行每行一个指令,每个指令是“left” 或“right”或数字。输出格式(有m个走路的指令)共m行,每一行一个坐标,表示走完后的坐标。如果只是原地转弯,从来不走动,则输出“(0,0)”.题解:——————
阅读全文
posted @
2011-12-28 19:27
怡红公子
阅读(508)
推荐(1)
题目:传球游戏
摘要:题目描述上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到了小蛮手里。两种传球方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有3个同学1号、2号、3号,并且假设小蛮为1号
阅读全文
posted @
2011-12-26 16:52
怡红公子
阅读(320)
推荐(0)
题目:删数问题
摘要:题目描述给定一个正整数(<=255位),从中删去n位后,使得剩下的数字组成的新数最小。输入格式第一行,要处理的正整数第二行,一个整数n (n<255)输出格式仅一行,组成的最小的新数代码实现:—————————————————————————————————————————————————#include<iostream>using namespace std;int a[257],n,l;void dfs(int i){ int j; for(j=i+1;j<=l;j++) if(a[j]!=-1) break; if(a[j]>=a[i]) dfs(j
阅读全文
posted @
2011-12-24 20:46
怡红公子
阅读(255)
推荐(0)
题目:[汪老师结婚]婚礼上的袭击
摘要:题目描述背景:雅礼中学信息组那英俊潇洒风流倜傥身高五尺玉树临风的汪老师要结婚的消息,如一重磅炸弹在众人耳旁炸响。但他的学生们却早已在阴影中悄悄策划了一个天大的阴谋….. 话说汪老师正喜气洋洋的在婚礼上傻笑,突然从门外冲进了N个他的学生:zhangrunzhou、yiming94、jimmyandhxm、pc、zw7840、行云流水、chensqi……大牛们每人手中都拿着一个臭不可闻的鸡蛋,向汪老师掷去。幸好英明神武的汪老师早就安排了间谍(yiming94),于是他老人家不慌不忙地从身后拿出N个刚从地摊上买来的盾牌,以防护学生扔来的臭鸡蛋。但因为各人的力量不同,且汪老师盾牌的质量也不同(谁叫他贪
阅读全文
posted @
2011-12-21 21:32
怡红公子
阅读(314)
推荐(1)
题目:[SBN号码]
摘要:题目描述每一本正式出版的图书都有一个ISBN号码之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版设,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在该出版社的编号;最后一位为识别码。识别码计算方法如下:首位数字乘以1加上次位数字乘以2……以此类推,所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字
阅读全文
posted @
2011-12-21 17:19
怡红公子
阅读(650)
推荐(0)
题目:[NOIP2008]笨小猴
摘要:题目描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。输入格式输入只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。输出格式输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;
阅读全文
posted @
2011-12-20 23:54
怡红公子
阅读(325)
推荐(1)
n皇后 DFS
摘要:我是菜鸟,只会学习DFS算法,就是DFS算法我也学了好长时间。#include<iostream>#include <iomanip>#define n 8using namespace std;int a[n+1],total=0,l;int cheak(int i){ int k; for(k=1;k<i;k++) if(abs(a[i]-a[k])==abs(i-k)||a[i]==a[k]) return 0; return 1; }void dfs(int i){ int j; if(i==n+1) {cout<<"第"&
阅读全文
posted @
2011-12-19 00:46
怡红公子
阅读(301)
推荐(1)
题目:分子团
摘要:题目描述京京接受了一个用染色法测定平面内分子团数量的工作。已知没有分子的位置用0表示。被染色的部分根据其染色深度用1~9表示。由于这些分子具有特殊性,它的延展方向在平面内只有前、后、左、右4个方向。在延伸方向上相互接触的分子构成一个分子团。在一个M×N的矩形区域内,请你帮他统计出分子团的数量(X)。输入格式第一行 M N (2<=[M,N]<=100)第二行 N个0~9之间的数字……第M+1行 N个0~9之间的数字输出格式X分析:———————————————————————————————————————————————————做的题目太少了,这种题是第一次做,竟花了我
阅读全文
posted @
2011-12-17 21:17
怡红公子
阅读(290)
推荐(0)
题目:三元组
摘要:题目描述已知一个数列a1,a2,a3,a4...an.求有多少个逆序三元组。逆序三元组:d1,d2,d3,1.d1>d2>d32.在数组中的下标p1,p2,p3;p1>p2>p3;(n<=2500 ai<=2^31)输入格式第一行是n第二行是n个数输出格式多少个逆序三元组。(结果小于2^61)分析:———————————————————————————————————————————————————题意虽较紊乱,但还是可以看懂的,主要是叫我们求一列数中有多少个单调递减的三元组。我已开始用的时DFS,但可以确定的是一定会超时,事实是只过了5的点,经tld大牛的
阅读全文
posted @
2011-12-17 19:47
怡红公子
阅读(387)
推荐(0)
题目:免费午餐
摘要:题目描述为了增加顾客,Sally的店铺决定提供免费午餐,顿时门庭若市,但是不久Sally的原材料不足了….因此Sally决定公布一项决定:凡是来本店吃免费午餐的,一天吃能吃一次,吃的数量必须比上一次吃的少, 点的必须在上一次后面,且免费午餐将只有N个种类任君选择,为了能吃到最多的免费午餐,你将如何安排每日吃的数量呢?输入格式第一行一个数N,表示免费午餐的种类(0<=N<=100000)第二行N个数,表示每个免费午餐的数量(0<=数量<=100000)输出格式一个数,表示最多能吃多少天.分析:典型的DP,但朴素的DP已不能满足该题的数据,因此就用到了刚才写的求最大不降序列
阅读全文
posted @
2011-12-17 18:32
怡红公子
阅读(282)
推荐(0)
最长不下降子序列的O(n*logn)算法
摘要:刚学习的新方法,求最长不下降子序列是DP等经典问题,本来O(n*n)的算法已经是够强了,但还存在O(n*logn)的算法。~\(≧▽≦)/~。分析如下:O(nlogn)的算法关键是它建立了一个数组c[],c[i]表示长度为i的不下降序列中结尾元素的最小值,用K表示数组目前的长度,算法完成后K的值即为最长不下降子序列的长度。 具体点来讲: 设当前的以求出的长度为K,则判断a[i]和c[k]: 1.如果a[i]>=c[k],即a[i]大于长度为K的序列中的最后一个元素,这样就可以使序列的长度增加1,即K=K+1,然后现在的c[k]=a[i]; 2.如果a[i]<c[k],那么就在c[1
阅读全文
posted @
2011-12-17 18:25
怡红公子
阅读(1541)
推荐(1)
题目:迷宫路径
摘要:题目描述猩猩来到一个点(1,1),想吃右下角(N,N)的香蕉,规定只能往下走或者往右走,试问有多少种走法?输入格式第一行为一个整数N(N<=20)以下是一个N*N的正方形表示迷宫输出格式仅有一个数,表示路径总数,如果走不通,则输出0题解:———————————————————————————————————————————————————本题有两种解法,第一种就是dfs,但我以身试法,有一个点不能过,超时!但对于新手来说,这种方法是不得不掌握的。DFS代码实现:#include<iostream>using namespace std;int total=0,n,map[21
阅读全文
posted @
2011-12-16 23:00
怡红公子
阅读(390)
推荐(1)
题目:[NOIP2008]火柴棒等式
摘要:题目描述给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示: 注意: 1. 加号与等号各自需要两根火柴棍 2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 3. n根火柴棍必须全部用上输入格式共一行,又一个整数n(n<=24)。输出格式共一行,表示能拼成的不同等式的数目。题解:———————————————————————————————————————————————————无语中,一定要搜索900*900*900搜索999*999*999
阅读全文
posted @
2011-12-14 16:47
怡红公子
阅读(224)
推荐(1)
题目:[HNOI2006]鬼谷子的钱袋
摘要:题目描述鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。但是,他的行程安排得很满,他他已经买好了去邯郸的长途马车标,不巧的是出发时间是在拍卖会快要结束的时候。于是,他决定事先做好准备,将自己的金币数好并用一个个的小钱袋装好,以便在他现有金币的支付能力下,任何数目的金币他都能用这些封闭好的小钱的组合来付账。鬼谷子也是一个非常节俭的人,他想方设法使自己在满足上述要求的前提下,所用的钱袋数最少,并且不有两个钱袋装有相同的大于1的金币
阅读全文
posted @
2011-12-13 23:36
怡红公子
阅读(477)
推荐(0)
题目:奖学金
摘要:题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。 任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是: 7 279 5 279 这
阅读全文
posted @
2011-12-12 16:47
怡红公子
阅读(342)
推荐(0)
题目:展演队型
摘要:题目描述学校要每个班出一个表演项目,但是为了让队伍里的同学都露一下脸所以老师要求前一排的人必须比后一排的人少为了好看也不能相等,显然这种无聊又无趣的工作又要由superwyh来做,superwyh很苦恼,于是superwyh就把这活推给sjh了,所以分配完任务后superwyh的职责就是统计一共有多少种可能来打击一下sjh,所以各位oier再帮一下superwyh吧。输入格式一个数,代表班级人数(1<=n<=130)。输出格式一个数,所有可能树。题解:———————————————————————————————————————————————————可用深度优先搜索,但好像也可用
阅读全文
posted @
2011-12-12 00:32
怡红公子
阅读(222)
推荐(0)
题目:难题
摘要:题目描述小王在考试中遇到一道难题:方程a1+a2+……+an=m的非负整数解有几个,请你帮他算一下(这也可以算作他作弊吧)。样例说明0,0,4 0,1,3 0,2,2 0,3,1 0,4,01,0,3 1,1,2 1,2,1 1,3,02,0,2 2,1,1 2,2,03,0,1 3,1,04,0,0(total=5+4+3+2+1=15)数据范围对于50 %的数据,0<n,m<=10,结果<200,对于100 %的数据,0<n,m<32767, 结果<32767.输入格式一行,两个以空格隔开的数n,m,表示方程a1+a2+……+an=m输出格式一行,一个数
阅读全文
posted @
2011-12-11 17:14
怡红公子
阅读(337)
推荐(0)
[JSOI2007]奶酪
摘要:题目描述奶酪和pizza一样,是一小块扇形的固体。在奶酪从工厂里生产出来的时候,一共有4种形状,编号为1~4,分别是圆心角为72º;;,144º;;,216º;;,288º;;的扇形。奶酪的盒子是圆形的,半径和奶酪的半径一致。也就是说,一块1号奶酪和一块4号奶酪可以恰好装入一个盒子,一块2号奶酪和一块3号奶酪可以恰好装入一个盒子。你的任务是写一个程序,计算给定的奶酪最多可以装满几个盒子。输入格式一行,四个数字,表示1~4号奶酪的数量,都在0~100之内输出格式一个数字,表示可以装满几个盒子题解:——————————————————————————————
阅读全文
posted @
2011-12-11 16:04
怡红公子
阅读(256)
推荐(0)
归并排序Merge
摘要:#include<iostream>#include<fstream>#define N 10000using namespace std;ifstream fin("Merge_sort.in");ofstream fout("Merge_sort.out");int a[N],n;void Init(){ int i; fin>>n; for(i=1;i<=n;i++) fin>>a[i]; }void Merge(int i,int mid,int j){ int b[N],l,t,k; t=i
阅读全文
posted @
2011-12-07 20:01
怡红公子
阅读(243)
推荐(1)
快排程序
摘要:#include<iostream>#include<fstream>using namespace std;ifstream fin("Quicksort.in");ofstream fout("Quicksort.out");int w[10000];void Quick_sort(int i,int j){ int a,b,c; a=i; b=j; c=w[i+rand()%(j-i+1)]; //c语言rand()函数的用法是 i+rand()%(j-i+1) 随机取i到j中的数 调用stdlib.h while(a<
阅读全文
posted @
2011-12-07 19:59
怡红公子
阅读(505)
推荐(0)