![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM
heisetiantang
这个作者很懒,什么都没留下…
展开
-
1384 全排列
给出一个字符串S(可能又重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = "1312",输出为:112311321213123113121321211321312311311231213211Input输入一个字符串S(S的长度 <= 9,且只包括0 - 9的阿拉伯数字)Output输出S所包含的字符组成的所有排列Input示例原创 2016-09-30 19:59:39 · 584 阅读 · 0 评论 -
计蒜_统计三角形
两个人有N根不同长度的木棍,看谁能猜出这些木棍一共能拼出多少个不同的不等边三角形。拼三角形的时候要用上所有的木棍(即每个三角形都要用到所有的木棍)。不同的定义是至少有一条边的长度不相同,不等边的定义是三条边都不相等。题目大意是用n根木棍能组成多少个不同的三角形,每个三角形都要用上全部的木棍。#include#include#includeusing namespace std;i原创 2016-02-29 16:07:33 · 344 阅读 · 0 评论 -
51nod1083 矩阵取数问题
一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值。例如:3 * 3的方格。1 3 32 1 32 2 1能够获得的最大价值为:11。Input第1行:N,N为矩阵的大小。(2 <= N <= 500)第2 - N + 1行:每行N个数,中间用空格隔开,对应格子中奖励的价值。(1 <= N[i] <= 10原创 2016-03-13 15:53:01 · 821 阅读 · 0 评论 -
1123: 最高的奖励
题目描述有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。输入第1行:一个数N,表示任务的数量(2 <= N <= 50000) 第2 - N + 1行,每行2个数,中间用空格分隔,表示任务的最晚结束时间原创 2016-03-23 19:30:04 · 522 阅读 · 0 评论 -
51nod1087 1 10 100 1000
1,10,100,1000...组成序列1101001000...,求这个序列的第N位是0还是1。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)Output共T行,如果该位是0,输出0,如果该位是1,输出1。Input示例3123Output示例110原创 2016-03-12 11:24:19 · 1019 阅读 · 0 评论 -
51nod1090 3个数和为0
给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。Input第1行,1个数N,N为数组的长度(0 <= N <= 1000)第2 - N + 1行:A[i](-10^9 <= A[i] <= 10^原创 2016-03-11 21:40:06 · 326 阅读 · 0 评论 -
1124: Bash 游戏
题目描述 有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量最少1个,最多不超过对手上一次拿的数量的2倍(A第1次拿时要求不能全拿走)。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。例如N = 3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。 输入第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T原创 2016-03-22 17:24:19 · 241 阅读 · 0 评论 -
冗余关系与并查集
蒜头最近在沉迷小说,尤其是人物关系复杂的言情小说。它看到的人物关系描述得很的麻烦的时候觉得非常蒜疼,尤其是任务关系里有冗余的时候。什么是冗余关系呢?这篇小说里有n句描述人物关系的句子,描述了n个人的关系。每条句子的定义是这样的: XY 它的意思是:X认识Y,Y也认识X我们认为小说中的人物关系是具有传递性的,假如A认识B,B认识C,则A也认识C。冗余关系的定义:就是即原创 2016-04-03 11:43:10 · 878 阅读 · 0 评论 -
51nod1091 线段的重叠
X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。Input第1行:线段的数量N(2 <= N <= 50000)。第2 - N + 1行:每行2个数,线段的起点和终点。(0 <= s , e <=原创 2016-03-10 14:42:55 · 352 阅读 · 0 评论 -
51nod1080 两个数的平方和
给出一个整数N,将N表示为2个整数i j的平方和(i <= j),如果有多种表示,按照i的递增序输出。例如:N = 130,130 = 3^2 + 11^2 = 7^2 + 9^2 (注:3 11同11 3算1种)Input一个数N(1 <= N <= 10^9)Output共K行:每行2个数,i j,表示N = i^2 + j^2(0 <= i <= j)。如果无法分解为2个数的平方原创 2016-03-14 13:28:29 · 846 阅读 · 0 评论 -
51nod1015 水仙花数
水仙花数是指一个 n 位数 ( n >= 3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)给出一个整数M,求 >= M的最小的水仙花数。Input一个整数M(10 <= M <= 1000)Output输出>= M的最小的水仙花数Input示例99Output示例153这么写轻松加愉快#include "iostr原创 2016-03-14 14:09:34 · 337 阅读 · 0 评论 -
1459 迷宫游戏
1459 迷宫游戏基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注你来到一个迷宫前。该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数。还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首要目标的前提下,使得你的得分原创 2016-09-30 12:11:35 · 321 阅读 · 0 评论 -
个位数统计
给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (00),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。输入格式:每个输入包含1个测试用例,即一个不超过1000位的正整数N。输出格式:对N中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在N中出现的次数M。要求按D的升序原创 2016-05-14 15:12:04 · 2859 阅读 · 0 评论 -
打印沙漏
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。输入格式:输入在原创 2016-05-14 13:47:14 · 626 阅读 · 0 评论 -
51nod1428 活动安排问题
有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室? Input第一行一个正整数n (n <= 10000)代表活动的个数。第二行到第(n + 1)行包含n个开始时间和结束时间。开始时间严格小于结束时间,并且时间都是非负整数,小于1000000000Output一行包含一个整数表示最少教室的个数。Input示例原创 2016-03-26 11:41:36 · 275 阅读 · 0 评论 -
51nod1432 独木舟
n个人,已知每个人体重。独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟?Input第一行包含两个正整数n (0<n<=10000)和m (0<m<=2000000000),表示人数和独木舟的承重。接下来n行,每行一个正整数,表示每个人的体重。体重不超过1000000000,并且每个人的体重原创 2016-03-25 20:49:17 · 318 阅读 · 0 评论 -
51nod1413 权势二进制
一个十进制整数被叫做权势二进制,当他的十进制表示的时候只由0或1组成。例如0,1,101,110011都是权势二进制而2,12,900不是。当给定一个n的时候,计算一下最少要多少个权势二进制相加才能得到n。Input单组测试数据。第一行给出一个整数n (1<=n<=1,000,000)Output输出答案占一行。Input示例9Output示例9网上看了下大神的思路,有种原创 2016-03-25 20:16:02 · 361 阅读 · 0 评论 -
51nod1004 n^n的末位数字
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。Input一个数N(1 <= N <= 10^9)Output输出N^N的末位数字Input示例13Output示例3把各种情况先列出来#include using namespace std;int a[5]{2, 4, 8, 6};int b[5]{3, 9, 7, 1};int c[5]{7,原创 2016-03-15 11:51:50 · 458 阅读 · 0 评论 -
51nod1433 0和5
小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5。小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数。使得这个数尽可能大,而且可以被90整除。注意:1.这个数没有前导0,2.小K不需要使用所有的牌。Input每个测试数据输入共2行。第一行给出一个n,表示n张牌。(1<=n<=1000)第二行给出n个整数a[0],a[1],a[2],…,a[n-1]原创 2016-03-25 15:46:55 · 355 阅读 · 0 评论 -
51nod1182 完美字符串
约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数。约翰不在乎字母大小写。(也就是说字母F和f)的完美度相同。给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77。Input输入一个字符串S(S的长度 <= 10000),S中没有除字母外的原创 2016-03-10 10:38:11 · 335 阅读 · 0 评论 -
51nod1009 数字1的数量
给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。Input输入N(1 <= N <= 10^9)Output输出包含1的个数Input示例12Output示例5#include "iostream"using namespace std;int m原创 2016-03-21 18:10:25 · 341 阅读 · 0 评论 -
爬楼梯问题
蒜头君自从春节回来以后,体重就像加了特技一样duang~duang~地暴增起来。于是小蒜头打算每天爬楼梯来燃烧体内的脂肪(咦?蒜怎么会有脂肪=.=)。蒜头在爬楼梯的时候脑洞大开,因为蒜头腿短,爬楼梯的时候一次只能迈1级或2级台阶,它就想到了,假如一共有n级台阶的话,它一共有多少种方法能够爬到楼梯顶部呢? 聪明的你快来帮帮小蒜头吧~建议你使用动态规划求解哦,直接搜索是会超时的^o^ 输入格式:原创 2016-04-03 00:00:36 · 663 阅读 · 0 评论 -
51nod1344 走格子
有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去。机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值。如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] < 0,走到这个格子需要消耗相应的能量,如果机器人的能量 < 0,就无法继续前进了。问机器人最少需要有多少初始能量,才能完成整个旅程。例如:n = 5原创 2016-03-07 15:37:46 · 1751 阅读 · 0 评论 -
51nod 1347 旋转字符串
S[0...n-1]是一个长度为n的字符串,定义旋转函数Left(S)=S[1…n-1]+S[0].比如S=”abcd”,Left(S)=”bcda”.一个串是对串当且仅当这个串长度为偶数,前半段和后半段一样。比如”abcabc”是对串,”aabbcc”则不是。现在问题是给定一个字符串,判断他是否可以由一个对串旋转任意次得到。Input第1行:给出一个字符串(字符串非空串,只包含小写字母,原创 2016-03-07 14:22:33 · 731 阅读 · 0 评论 -
1015: 【出圈】
题目描述设有n个人围坐一圈并按顺时针方向从1到n编号,从第1个人开始进行1到m的报数,报数到第个m人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所剩下一人为止。输入输入多行,每行2个数,分别表示n和m.输出计算每一行中最后剩下这个人的编号.样例输入10 3样例输出4#include using namespace std;int person原创 2016-03-05 11:15:12 · 328 阅读 · 0 评论 -
1008: 数列
这道题搞得好忧伤啊,实在搞不出来,就网上查了下,,居然是用二进制来搞,想撞墙。。。题目描述给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:1,3,4,9,10,12,13,…(该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)请你求出这个序列的第N项的值(原创 2016-03-04 16:05:39 · 481 阅读 · 0 评论 -
51nod1417 天堂里的游戏
多年后,每当Noder看到吉普赛人,就会想起那个遥远的下午。Noder躺在草地上漫无目的的张望,二楼的咖啡馆在日光下闪着亮,像是要进化成一颗巨大的咖啡豆。天气稍有些冷,但草还算暖和。不远的地方坐着一个吉普赛姑娘,手里拿着塔罗牌,带着耳机,边上是她的狗。狗看起来有点凶,姑娘却漂亮。Noder开始计算各种搭讪方式的成功概率,然而狗的存在......。奇怪的事情发生了,姑娘自己走了过来,把耳机戴原创 2016-03-29 16:07:28 · 587 阅读 · 0 评论 -
Jam的计数法
题目描述Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Jam还指定使用字母的范围,例如,从2到10,原创 2016-03-04 00:33:59 · 4748 阅读 · 0 评论 -
1006: 开心的金明
金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不原创 2016-03-03 13:00:08 · 304 阅读 · 0 评论 -
明明的随机数
题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入输入文件ran原创 2015-12-26 16:35:31 · 458 阅读 · 0 评论 -
1003 阶乘后面0的数量
n的阶乘后面有多少个0?6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。Input一个数N(1 <= N <= 10^9)Output输出0的数量Input示例5Output示例1搞得都怀疑自己智商了,也是醉了#include#includeusing namespace std;int main(){ long long ans =原创 2016-03-18 23:13:13 · 312 阅读 · 0 评论 -
51nod1305 Pairwise Sum and Divide
有这样一段程序,fun会对整数数组A进行求值,其中Floor表示向下取整:fun(A) sum = 0 for i = 1 to A.length for j = i+1 to A.length sum = sum + Floor((A[i]+A[j])/(A[i]*A[j])) return sum给出数组A,由你来计算f原创 2016-03-07 19:01:02 · 280 阅读 · 0 评论 -
51nod1284 2 3 5 7的倍数
给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。Input输入1个数N(1 <= N <= 10^18)。Output输出不是2 3 5 7的倍数的数共有多少。Input示例10Output示例1用容斥原理来搞#include "iostream"using namespace std;int main原创 2016-03-09 22:05:03 · 345 阅读 · 0 评论 -
51nod1289 大鱼吃小鱼
有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的时间之后,能剩下多少条鱼?Input第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。第2 - N + 1行:每行两个数A[i], B[i],中间用空格分隔,分别表示鱼的大小及游动的方原创 2016-03-09 20:28:09 · 1519 阅读 · 0 评论 -
最长上升子序列
最长上升子序列 (Longest Increasing Subsequence, 常简称为 LIS) 是动态规划解决的一个经典问题。 我们先讲一下子序列是什么。一个数组的子序列就是从里面选出一些元素,并将他们保持原有的先后顺序排列。比如[1, 2, 3, 4, 5]的子序列有[1, 3, 5]、[3, 4],而[1, 5, 3]则不是这个数组的子序列。 这里多介绍一下,还有一个容易与子序列混淆原创 2016-04-01 17:41:36 · 312 阅读 · 0 评论 -
51nod1002 数塔取数问题
一个高度为N的由正整数组成的三角形,从上走到下,求经过的数字和的最大值。每次只能走到下一层相邻的数上,例如从第3层的6向下走,只能走到第4层的2或9上。 5 8 4 3 6 97 2 9 5例子中的最优方案是:5 + 8 + 6 + 9 = 28Input第1行:N,N为数塔的高度。(2 <= N <= 500)第2 - N + 1行:每行包括1层数塔的数字,第2行1个原创 2016-03-21 14:05:32 · 865 阅读 · 0 评论 -
51nod1001 数组中和等于K的数对
给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对。例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0,8),(2,6),(3,5)。Input第1行:用空格隔开的2个数,K N,N为A数组的长度。(2 <= N <= 50000,-10^9 <= K <= 10^9)第2 - N + 1行:A原创 2016-03-20 17:38:22 · 988 阅读 · 0 评论 -
1122: 妈妈,我够不着...555
题目描述小明今天就满五岁了,隔壁的王叔叔送了他一支铅笔做生日礼物。小明还不到上小学的年龄,不知道这根长长的棍子是做什么用的,所以他把这支可怜的铅笔当棍子玩了。他把它叫“金箍棒”,这是前几天才从动画片里看到的词语。动画片里面孙大大就是用金箍棒打跑了一个个长得吓人的大怪物,想着自己也有了“金箍棒”,小明十分开心。.*小明从来都是个爱突发奇想的孩子,他喜欢给自己出难题。拿着手中的“棍子”,他发原创 2016-03-20 13:18:36 · 820 阅读 · 0 评论 -
1121: 想减肥的字符串
题目描述从前,有一串很长很长的字符串,它由n个小写字母组成。有一天它在照镜子的时候,觉得自己太肥了,于是它想减肥。减肥的时候,可以不断地去掉第一个或者最后一个字符。它希望自己减肥之后,对于小写字母a、b、c,自己身上都至少保留有一个。它想知道自己减肥后的最小长度,你能帮帮它吗?输入每行有一串由小写字母组成的字符串,字符串的长度n < 1000。保证字符串中包含有小写字母a、b、c输出每行原创 2016-03-20 11:00:10 · 869 阅读 · 0 评论 -
1118: 8球胜负(eight)
题目描述8球是一种台球竞赛的规则。台面上有7个红球、7个黄球以及一个黑球,当然还有一个白球。对于本题,我们使用如下的简化规则:红、黄两名选手轮流用白球击打各自颜色的球,如果将该颜色的7个球全部打进,则这名选手可以打黑球,如果打进则算他胜。如果在打进自己颜色的所有球之前就把黑球打进,则算输。如果选手不慎打进了对手的球,入球依然有效。现在给出打进的球(白球除外)的顺序,以及黑球由哪方打进,你的任原创 2016-03-19 21:03:16 · 328 阅读 · 0 评论