ACM
老干妈就泡面
这个作者很懒,什么都没留下…
展开
-
洛谷 P1008 三连击 (枚举以及 next_permutation(全排列)的应用)—— C++
题目背景本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。题目描述将 1,2,⋯,9 共 9 个数分成 3 组,分别组成 3 个三位数,且使这 3 个三位数构成 1:2:3 的比例,试求出所有满足条件的 3 个三位数。输入格式木有输入输出格式若干行,每行 3 个数字。按照每行第 1 个数字升序排列。输入无输出 #1 复制19...原创 2019-08-29 20:01:01 · 382 阅读 · 0 评论 -
HDU 1716 排列2(next_permutation() 应用实例) —— C++
Ray又对数字的列产生了兴趣:现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。Input每组数据占一行,代表四张卡片上的数字(0<=数字<=9),如果四张卡片都是0,则输入结束。Output对每组卡片按从小到大的顺序输出所有能由这四张卡片组成的4位数,千位数字相同的在同一行,同一行中每个四位数间用空格分隔。每组输出数据间空一行,最后一...原创 2019-08-05 15:36:12 · 145 阅读 · 0 评论 -
C++ STL 查找算法 简述
查找算法:判断容器中是否包含某个值count(first,last,value);返回 [first,last) 范围内等于 value 的元素个数。代码示例:#include <iostream> // std::cout#include <algorithm> // std::count#include <vector> ...原创 2019-08-01 11:12:55 · 487 阅读 · 0 评论 -
HDU 1027 Ignatius and the Princess II (next_permutation 的应用实例)—— C++
Now our hero finds the door to the BEelzebub feng5166. He opens the door and finds feng5166 is about to kill our pretty Princess. But now the BEelzebub has to beat our hero first. feng5166 says, “I ha...原创 2019-08-05 13:21:17 · 132 阅读 · 0 评论 -
时区转换 (map 和 struct 的应用)—— C++
直到19世纪,时间校准是一个纯粹的地方现象。每一个村庄当太阳升到最高点的时候把他们的时钟调到中午12点。一个钟表制造商人家或者村里主表的时间被认为是官方时间,市民们把自家的钟表和这个时间对齐。每周一些热心的市民会带着时间标准的表,游走大街小巷为其他市民对表。在城市之间旅游的话,在到达新地方的时候需要把怀表校准。但是,当铁路投入使用之后,越来越多的人频繁地长距离地往来,时间变得越来越重要。在铁路的早...原创 2019-08-05 11:40:49 · 714 阅读 · 0 评论 -
ACM题目中几种 数据输入 的处理方法 —— C++
最简单的输入例1:Description计算 a+bInput两个整数 a,bOutputa+b的值Sample Input1 2Sample Output3这种最简单的输入,接受一组输入,针对这组输入计算出值即可。这与平时的程序设计并无差异。解决办法是:#include <iostream> using namespace std; int ...转载 2019-07-31 22:01:34 · 705 阅读 · 0 评论 -
HDU 2648 Shopping(map 应用示例) —— C++
Every girl likes shopping,so does dandelion.Now she finds the shop is increasing the price every day because the Spring Festival is coming .She is fond of a shop which is called “memory”. Now she want...原创 2019-08-04 23:24:35 · 220 阅读 · 0 评论 -
HDU 2094 产生冠军 (set 集合的应用示例)—— C++
有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。球赛的规则如下:如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经实际上产生了冠军。Inp...原创 2019-08-04 20:27:00 · 161 阅读 · 0 评论 -
HDU 1107 武林 —— C++
在一个有12行12列的方形的武林世界里,少林、武当和峨嵋三派的弟子们在为独霸武林而互相厮杀。武林世界的第一行的一列格子的坐标是(1, 1),第一行第二列坐标是(1, 2)……右下角的坐标为(12, 12)。如图:少林派弟子总是在同一列回不停地行走。先往下走,走到头不能再走时就往上走,再到头则又往下走……比如,(1, 1) -> (2, 1) -> (3, 1)。武当派弟子总是在同...原创 2019-08-07 21:56:24 · 317 阅读 · 0 评论 -
实数加法(高精度训练) —— C++
求两个实数相加的和。题目中输入输出里出现的浮点数都有如下的形式:P1P2…Pi.Q1Q2…Qj。对于整数部分,P1P2…Pi是一个非负整数且当整数部分不为0时,P1不等于0;对于小数部分,Qj不等于0。输入2行,每行是一个加数。每个加数的长度不超过100。输出一行,即相应的和。输出保证一定是一个小数部分不为0的实数。样例输入0.11111111111111111111111111...原创 2019-08-08 00:06:26 · 3219 阅读 · 0 评论 -
摘花生 —— C++
鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图1)。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的...原创 2019-08-08 12:48:32 · 1820 阅读 · 1 评论 -
洛谷 P1007 独木桥 (set集合的应用实例)—— C++
题目描述突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了安全,你的部队必须撤下独木桥。已知 独木桥的长度为 L ,士兵们只能呆在坐标为整数的地方。所有士兵的速度都为 1 ,当一个士兵某一时刻来到了坐标为 0 或 L+1 的位置,他就离开了独木桥。每个士兵都有一个初始面对的方向,他们会以匀速朝着这个方向行走,中途不会自己改变方向。但是,如果两个士兵面对面相遇,他们无法...原创 2019-08-29 18:50:53 · 775 阅读 · 1 评论 -
POJ 1047 Round and Round We Go 循环数新解法 —— C++
若一个n位的数字串满足下述条件,则称其是循环数(cyclic):将这个数字串视为整数(可能带有前导0),并用任意一个 1 到 n 之间(包含1和n)的整数去乘它时, 会得到一个将原数字串首尾相接后,再在某处断开而得到的新数字串所对应的整数。例如,数字 142857 是循环数,因为:142857 *1 = 142857142857 *2 = 285714142857 *3 = 4285711...原创 2019-08-07 16:40:40 · 434 阅读 · 0 评论 -
HDU 2553 N皇后问题 (回溯和剪枝的应用)—— C++
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。Input共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。Output共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。Sample Input18...原创 2019-08-09 12:18:00 · 250 阅读 · 0 评论 -
计算2的N次方(高精度实例) —— C++
任意给定一个正整数N(N<=100),计算2的n次方的值。输入输入一个正整数N。输出输出2的N次方的值。样例输入5样例输出32思路:已知 2^0 ~ 2^64 具体值,遇到大于 64 的 N ,相当于 2^64 * 2^(N - 64)这里用到了大整数乘法,而大整数乘法用到了大整数加法代码:#include<string>#include<...原创 2019-08-09 10:36:49 · 6763 阅读 · 0 评论 -
POJ 1835 宇航员 —— C++
宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示:现对六个方向分别标号,x,y,z正方向分别为0,1,2,负方向分别为3,4,5;称它们为绝对方向。宇航员在宇宙中只沿着与绝对坐标系xyz轴平行的方向行走,但是他不知道自己当前绝对坐标和自己面向的绝对方向。任务描述: 请根据...原创 2019-08-06 21:36:11 · 499 阅读 · 0 评论 -
大整数乘法 (高精度练习)—— C++
求两个不超过200位的非负整数的积。输入有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入1234567890098765432100样例输出1219326311126352690000思路:跟大整数加法类似,对于给定的两个数 A B,用小学乘法,即用 ...原创 2019-08-08 19:01:35 · 916 阅读 · 0 评论 -
大整数加法 (高精度训练)—— C++
求两个不超过200位的非负整数的和。输入有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入2222222222222222222233333333333333333333样例输出55555555555555555555思路:确定两数中的最长位数,将位数...原创 2019-08-08 15:53:41 · 526 阅读 · 0 评论 -
HDU 1312 Red and Black(深度优先搜索 + 广度优先搜索 示例)—— C++
There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can’...原创 2019-08-06 11:19:07 · 246 阅读 · 0 评论 -
HDU 1276 士兵队列训练问题 (链表应用示例)—— C++
某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。Input本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不...原创 2019-08-04 19:13:18 · 294 阅读 · 0 评论 -
ZOJ 1115 Digital Roots —— C++
The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then that digit is the digital root. If the resulting value contains two ...原创 2019-08-04 17:26:11 · 251 阅读 · 0 评论 -
ZOJ 1414 Number Steps —— C++
Starting from point (0,0) on a plane, we have written all non-negative integers 0, 1, 2,… as shown in the figure. For example, 1, 2, and 3 has been written at points (1,1), (2,0), and (3, 1) respectiv...原创 2019-07-23 10:01:19 · 132 阅读 · 0 评论 -
ZOJ 1002 Fire Net —— C++
Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall.A blockhouse is a small castle tha...原创 2019-07-23 10:19:52 · 301 阅读 · 0 评论 -
POJ 1657 Distance on Chessboard —— C++
国际象棋的棋盘是黑白相间的8 * 8的方格,棋子放在格子中间。如下图所示:王、后、车、象的走子规则如下:王:横、直、斜都可以走,但每步限走一格。后:横、直、斜都可以走,每步格数不受限制。车:横、竖均可以走,不能斜走,格数不限。象:只能斜走,格数不限。写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。输入第一行是测试数据的组数t(0 <...原创 2019-07-29 12:50:54 · 439 阅读 · 0 评论 -
POJ 1002 487-3279 —— C++
企业喜欢用容易被记住的电话号码。让电话号码容易被记住的一个办法是将它写成一个容易记住的单词或者短语。例如,你需要给滑铁卢大学打电话时,可以拨打TUT-GLOP。有时,只将电话号码中部分数字拼写成单词。当你晚上回到酒店,可以通过拨打310-GINO来向Gino’s订一份pizza。让电话号码容易被记住的另一个办法是以一种好记的方式对号码的数字进行分组。通过拨打必胜客的“三个十”号码3-10-10-1...原创 2019-07-30 11:06:51 · 156 阅读 · 0 评论 -
HDU 4841 圆桌问题(约瑟夫问题) —— C++
圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。Input多组数据,每组数据输入:好人和坏人的人数n(<=32767)、步长m(<=...原创 2019-08-03 16:37:08 · 635 阅读 · 0 评论 -
HDU 1237 简单计算器 (栈的应用)—— C++
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。Output对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。Sample Input1 + 24 + 2 * 5 - 7...原创 2019-08-04 13:32:41 · 322 阅读 · 0 评论 -
HDU 1062 Text Reverse(栈的应用)—— C++
Ignatius likes to write words in reverse way. Given a single line of text which is written by Ignatius, you should reverse all the words and then output them.InputThe input contains several test cas...原创 2019-08-03 20:27:55 · 247 阅读 · 0 评论 -
特殊日历计算 —— C++
有一种特殊的日历法,它的一天和我们现在用的日历法的一天是一样长的。它每天有10个小时,每个小时有100分钟,每分钟有100秒。10天算一周,10周算一个月,10个月算一年。现在要你编写一个程序,将我们常用的日历法的日期转换成这种特殊的日历表示法。这种日历法的时、分、秒是从0开始计数的。日、月从1开始计数,年从0开始计数。秒数为整数。假设 0:0:0 1.1.2000 等同于特殊日历法的 0:0:0...原创 2019-07-31 21:31:12 · 1111 阅读 · 0 评论 -
装箱问题 —— C++
描述一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为11, 22, 33, 44, 55, 66。这些产品通常使用一个 66h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。输入输入文件包括几行,每一行代表一个订单...原创 2019-07-29 09:26:08 · 1834 阅读 · 0 评论 -
确定进制 —— C++
6*9 = 42 对于十进制来说是错误的,但是对于13进制来说是正确的。即, 6(13) * 9(13) = 42(13), 而 42(13) = 4 * 13^1+ 2 * 13^0= 54(10)。你的任务是写一段程序读入三个整数p、q和 r,然后确定一个进制 B(2<=B<=16)使得 p * q = r. 如果 B有很多选择, 输出最小的一个。例如: p = 11, q...原创 2019-07-29 10:43:38 · 3193 阅读 · 0 评论 -
HDU 1702 ACboy needs your help again! (队列的应用)—— C++
ACboy was kidnapped!!he miss his mother very much and is very scare now.You can’t image how dark the room he was put into is, so poor原创 2019-08-04 15:06:53 · 127 阅读 · 0 评论 -
不吉利日期 —— C++
在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1…7)输入输入有一行,即一月一日星期几(w)。(1 <= w <= 7)输出输出有一到多行,每行一个月份,表示该月的13日是星期五。样例输入7样例输...原创 2019-07-31 12:38:07 · 2717 阅读 · 2 评论 -
玛雅历 —— C++
上周末,M.A. Ya教授对古老的玛雅有了一个重大发现。从一个古老的节绳(玛雅人用于记事的工具)中,教授发现玛雅人使用了一个一年有365天的叫做Haab的历法。这个Haab历法拥有19个月,在开始的18个月,一个月有20天,月份的名字分别是pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin, mu...原创 2019-07-31 09:45:19 · 2162 阅读 · 0 评论 -
计算日期差 —— C++
#include<iostream>#include<cmath>using namespace std;bool isLeapYear(int year){ return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);}// 以公元 1 年 1 月 1 日为基准,计算经过的日期 ...原创 2019-07-30 22:21:00 · 575 阅读 · 0 评论 -
日历问题 —— C++
在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和 2100 不是闰年,而 1600, 2000 和 2400是闰年。 给定从公元2000年1月1日开始逝去的天数,你的任务是给出这一天是哪年哪月哪日星期几。输入输入包含若干行,每行包含一个正整数,表示从2000年1月1日开始逝去的天数。...原创 2019-07-30 22:01:37 · 1396 阅读 · 0 评论 -
统计字符数 —— C++
判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多输入第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串每组测试数据之间有一个空行,每行数据不超过1000个字符且非空输出n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符样...原创 2019-07-29 15:11:20 · 3773 阅读 · 2 评论 -
如何在 C++ 中使用 scanf() & printf()
首先,在用 VS2017 编译一个程序时,如果在程序中使用了 C 语言的输入函数 scanf(),会发现报错,解决办法是:在代码的最顶行写入 #define _CRT_SECURE_NO_WARNINGS属性 —> C/C++ —> 预处理器,右侧 预处理器定义 右侧添加上:_CRT_SECURE_NO_DEPRECATE在新建项目时取消勾选“SDL检查”若项目已建立好,在...原创 2019-08-02 23:05:17 · 31067 阅读 · 0 评论