描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态. 然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转.当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮. 当前密码锁状态已知,需要解决的问题是,你至少需要按多少次按钮,才能将密码锁转变为所期望的目标状态. 输入两行,给出两个由0.1组成的等长字符串,表示当前/目标密码锁状态,其中0代表凹,1代表凸.输出至少需要进行的按按钮操作次数,如果无法实现…
http://noi.openjudge.cn/ch0113/44/ 总时间限制:  1000ms 内存限制:  65536kB 描述 将 p 进制 n 转换为 q 进制.p 和 q 的取值范围为[2,36],其中,用到的数码按从小到大依次为:0,1,2,3,4,5,6,7,8,9,A,B,...,Z,不考虑小写字母 .  输入 一共1+m 行: 第1行为 m,表示后面有 m 行(1 <= m <= 60). 其后的m行中,每行3个数: 进制p,p进制数n,以及进制 q. 三个数之间用逗号间隔…
http://noi.openjudge.cn/ch0113/15/ 总时间限制:  1000ms 内存限制:  65536kB 描述 输入一个长度为N的整数序列 (不多于128个整数),每个整数的范围在[-1052,1052],计算这个序列的众数. 众数是指出现次数最多的那个数. 如果有多个数出现的次数都达到最多,则取在原序列最先出现的数为众数:如果所有的数都相等,则返回"no". 输入 第一行为序列长度N.然后是N个数,每一个数的范围都是在[-10^52,10^52]. 注意,这N…
http://noi.openjudge.cn/ch0112/06/ 总时间限制:  2000ms 内存限制:  65536kB 描述 传说很遥远的藏宝楼顶层藏着诱人的宝藏.小明历尽千辛万苦终于找到传说中的这个藏 宝楼,藏宝楼的门口竖着一个木板,上面写有几个大字:寻宝说明书.说明书的内容如下: 藏宝楼共有 N+1 层,最上面一层是顶层,顶层有一个房间里面藏着宝藏.除了顶层外,藏宝楼另有 N 层,每层 M 个房间,这 M 个房间围成一圈并按逆时针方向依次编号为 0,-, M-1.其中一些房间有通往…
http://noi.openjudge.cn/ch0206/162/ 总时间限制:  1000ms 内存限制:  65536kB 描述 There is a straight highway with villages alongside the highway. The highway is represented as an integer axis, and the position of each village is identified with a single integer…
http://noi.openjudge.cn/ch0205/8465/ 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  1024kB 描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. 输入 第一行为整数T(T < 10),表示测试数据组数.每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y.(0<=x<=n…
http://noi.openjudge.cn/ch0205/2971/ 总时间限制:  2000ms 内存限制:  65536kB 描述 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000).农夫有两种移动方式: 1.从X移动到X-1或X+1,每次移动花费一分钟 2.从X移动到2*X,每次移动花费一分钟   假设牛没有意识到农夫的行动,站在原地不动.农夫最少要花多少时间才能抓住牛? 输入 两个…
链接:http://noi.openjudge.cn/ch0406/1768/ 描述已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵. 比如,如下4 * 4的矩阵 0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2 的最大子矩阵是 9 2-4 1-1 8 这个子矩阵的大小是15.输入输入是一个N * N的矩阵.输入的第一行给出N (0 < N <= 100).再后面的若干行中,依次(首先从左到右给出第一行的N个整数…
http://noi.openjudge.cn/ch0205/6044/ 描述佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢? 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置.地图上的每个位置都可以走到,只不过有些位置上有大蛇丸的手下,需要先打败大蛇丸的手下才能到这些位置.鸣人有一定数量的查克拉,每一个单位的查克拉可以打败一个大蛇丸的手下.假设鸣人可以往上下左右四个方向移动,每移动一个距离需要花费1个单位时间,打败大蛇丸的手下不需要时间.如果鸣人查克拉消耗完了,则只可以走到没有大蛇丸…
a:特殊密码锁 总时间限制: 1000ms 内存限制: 1024kB 描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态. 然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转.当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮. 当前密码锁状态已知,需要解决的问题是,你至少需要按多少次按钮,才能将密码锁转变为所期望的目标状态. 输入 两行,给出两个由0.1组成的等长字符串,表示当前/目标密码锁状态…
T31 字符串P型编码 描述 给定一个完全由数字字符('0','1','2',-,'9')构成的字符串str,请写出str的p型编码串.例如:字符串122344111可被描述为"1个1.2个2.1个3.2个4.3个1",因此我们说122344111的p型编码串为1122132431:类似的道理,编码串101可以用来描述1111111111:00000000000可描述为"11个0",因此它的p型编码串即为110:100200300可描述为"1个1.2个 0…
/* 用所谓的加法拆分操作得到 x + y = (x ^ y) + 2 * (x & y) 那么我们这两段异或相当于前缀和 + 2 * 分段使左右两块&最大 记当前前缀异或和为S, 那么我们要找到优秀的X最大化(S^X) & X 显然贪心可行, 插入的时候维护当前数字所有子集, 打个vis标记, 就能快速查询了 */ #include<cstdio> #include<algorithm> #include<cstring> #include&l…
T36 计算多项式的值 描述 假定多项式的形式为xn+xn-1+-+x2+x+1,请计算给定单精度浮点数x和正整数n值的情况下这个多项式的值. 输入 输入仅一行,包括x和n,用单个空格隔开.x在float范围内,n <= 1000000. 输出 输出一个实数,即多项式的值,精确到小数点后两位.保证最终结果在float范围内. 样例输入 样例输出 31.00 样例 #include<iostream> #include<cmath> #include<cstdio>…
T21:单词替换 描述 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串. 输入 输入包括3行,第1行是包含多个单词的字符串 s;第2行是待替换的单词a(长度 <= 100);第3行是a将被替换的单词b(长度 <= 100).s, a, b 最前面和最后面都没有空格. 输出 输出只有 1 行,将s中所有单词a替换成b之后的字符串. 样例输入 You wa…
T06 笨小猴 描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案. 输入 只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100. 输出 共两行,第一行是一个字符串,假…
T01 查找特定元素的值 描述 在一个序列(下标从1开始)中查找一个给定的值,输出第一次出现的位置. 输入 第一行包含一个正整数n,表示序列中元素个数.1 <= n <= 10000.第二行包含n个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开.元素的绝对值不超过10000.第三行包含一个整数x,为需要查找的特定值.x的绝对值不超过10000. 输出 若序列中存在x,输出x第一次出现的下标:否则输出-1. 样例输入 样例输出 样例 #include<iostream>…
T21 二维数组右上左下遍历 描述 给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组. 输入 输入的第一行上有两个整数,依次为row和col.余下有row行,每行包含col个整数,构成一个二维整数数组.(注:输入的row和col保证0 < row < 100, 0 < col < 100) 输出 按遍历顺序输出每个整数.每个整数占一行. 样例输入 样例输出 样例 先枚举第一行,向左下枚举,再枚举最后一列(除去…
T11 图像旋转 描述 输入一个n行m列的黑白图像,将它顺时针旋转90度后输出. 输入 第一行包含两个整数n和m,表示图像包含像素点的行数和列数.1 <= n <= 100,1 <= m <= 100.接下来n行,每行m个整数,表示图像的每个像素点灰度.相邻两个整数之间用单个空格隔开,每个元素均在0~255之间. 输出 m行,每行n个整数,为顺时针旋转90度后的图像.相邻两个整数之间用单个空格隔开. 样例输入 样例输出 样例 以矩阵元素坐标为例: 1,1    1,2    1,3…
T01 矩阵交换行 描述 给定一个5*5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果. 输入 输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开.第6行包含两个整数m.n,以一个空格分开.(1 <= m,n <= 5) 输出 输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开. 样例输入 样例输出 样例 #include<iostream> using namespace std; i…
郭大侠与Rabi-Ribi Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) 最近郭大侠迷上了玩Rabi-Ribi这个游戏. Rabi-Ribi呢,是一个打兔子的动作冒险游戏,萌萌哒的兔子在地上跑来跑去,好萌好萌呀~ 这个游戏是这样玩的,郭大侠作为一个主角,拿着一个小锤子,他的目标是敲晕兔子,然后最后把这些敲晕的兔子都带回家. 当然咯,郭大侠想带回的兔子的总价值最高~ 但是,兔子…
传送门:1806:词典 神奇的STL #include <iostream> #include <cstdio> #include <cstring> #include <map> #include <sstream> using namespace std; string s, s1, s2, word; map <string, string> dic; int main() { while (getline (cin, s) &…
这道题完全没有必要去计算限制时间,把时间当做一个参数来做就行了.知道了这一点之后就可以直接使用DP求解了 #include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cmath> using namespace std; ][]={},N=; ][][]={};//0时间1钱数 int main(void) { cin>&g…
T01 查找最接近的元素 描述 在一个非降序列中,查找与给定值最接近的元素. 输入 第一行包含一个整数n,为非降序列长度.1 <= n <= 100000.第二行包含n个整数,为非降序列各元素.所有元素的大小均在0-1,000,000,000之间.第三行包含一个整数m,为要询问的给定值个数.1 <= m <= 10000.接下来m行,每行一个整数,为要询问最接近元素的给定值.所有给定值的大小均在0-1,000,000,000之间. 输出 m行,每行一个整数,为最接近相应给定值的元素…
12:分数求和 描述 输入n个分数并对他们求和,并用最简形式表示.所谓最简形式是指:分子分母的最大公约数为1:若最终结果的分母为1,则直接用整数表示. 如:5/6.10/3均是最简形式,而3/6需要化简为1/2, 3/1需要化简为3. 分子和分母均不为0,也不为负数. 输入 第一行是一个整数n,表示分数个数,1 <= n <= 10:接下来n行,每行一个分数,用"p/q"的形式表示,不含空格,p,q均不超过10. 输出 输出只有一行,即最终结果的最简形式.若为分数,用&qu…
T1 1806:词典 描述 你旅游到了一个国外的城市.那里的人们说的外国语言你不能理解.不过幸运的是,你有一本词典可以帮助你. 输入首先输入一个词典,词典中包含不超过100000个词条,每个词条占据一行.每一个词条包括一个英文单词和一个外语单词,两个单词之间用一个空格隔开.而且在词典中不会有某个外语单词出现超过两次.词典之后是一个空行,然后给出一个由外语单词组成的文档,文档不超过100000行,而且每行只包括一个外语单词.输入中出现单词只包括小写字母,而且长度不会超过10.输出在输出中,你需要把…
一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行.同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到.如果起点或者终点有一个不能通行(为#),则看成无法办到. 输入 第1行是测试数据的组数k,后面跟着k组输入.每组测试数据的第1行是一个正整数n (1 <= n <= 10…
描述As we known, data stored in the computers is in binary form. The problem we discuss now is about the positive integers and its binary form. Given a positive integer I, you task is to find out an integer J, which is the minimum integer greater than…
容易看出,只要从两边往中间扫描,碰到相等的就直接分割然后加入答案即可,判断相等用字符串hash #include<bits/stdc++.h> #define REP(i,a,b) for(int i(a);i<=(b);++i) #define dbg(...) fprintf(stderr,__VA_ARGS__) using namespace std; typedef long long ll; typedef unsigned int uint; typedef unsigne…
二分法求函数的零点 总时间限制: 1000ms 内存限制: 65536kB 描述 有函数:f(x) = x5 - 15 * x4+ 85 * x3- 225 * x2+ 274 * x - 121 已知 f(1.5) > 0 , f(2.4) < 0 且方程 f(x) = 0 在区间 [1.5,2.4] 有且只有一个根,请用二分法求出该根. 输入 无. 输出 该方程在区间[1.5,2.4]中的根.要求四舍五入到小数点后6位. 解析 浮点二分练手题,首先打个表判断函数在[1.5,2.4]的单调性…
http://noi.openjudge.cn/ch0207/4976/ 描述 宇航员Bob有一天来到火星上,他有收集硬币的习惯.于是他将火星上所有面值的硬币都收集起来了,一共有n种,每种只有一个:面值分别为a1,a2… an. Bob在机场看到了一个特别喜欢的礼物,想买来送给朋友Alice,这个礼物的价格是X元.Bob很想知道为了买这个礼物他的哪些硬币是必须被使用的,即Bob必须放弃收集好的哪些硬币种类.飞机场不提供找零,只接受恰好X元. 输入第一行包含两个正整数n和x.(1 <= n <=…