摘要: 问题描述小明这些天一直在思考这样一个奇怪而有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式第一行是一个正整数N (1 #include#include#include#includeusing namespace std;int a[50005];int main(){ int n; while(~s... 阅读全文
posted @ 2014-03-10 22:10 哥的笑百度不到 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 问题描述某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入格式要求程序首先输入一个整数N(N#include#include#include#includeusing namespace std;char s[1000002];bool vis[1000002];int main(){ int n,flag,ans1,ans2,maxx... 阅读全文
posted @ 2014-03-10 21:36 哥的笑百度不到 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 历届试题 翻硬币 时间限制:1.0s 内存限制:256.0MB问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作,那么要求:输入格式两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度#include#include#include#in.. 阅读全文
posted @ 2014-03-10 20:51 哥的笑百度不到 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 历届试题 打印十字图 时间限制:1.0s 内存限制:256.0MB问题描述小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.$$$$$.$.$.$$.$.$...$...$.$.$$.$.$$$.$.$$$.$.$$.$...$...$...$.$$.$$$.$$$$$.$$$.$$...$..... 阅读全文
posted @ 2014-03-10 20:26 哥的笑百度不到 阅读(741) 评论(0) 推荐(0) 编辑
摘要: 历届试题 带分数 时间限制:1.0s 内存限制:256.0MB问题描述100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。输入格式从标准输入读入一个正整数N (N #include #include using namespace std; int a[10],vis[10],ans; int const n=9; __int64 num,num1,num2,num3; __in... 阅读全文
posted @ 2014-03-10 19:37 哥的笑百度不到 阅读(328) 评论(0) 推荐(0) 编辑