- 博客(68)
- 资源 (1)
- 收藏
- 关注
原创 HDU 2044 一只小蜜蜂... (斐波那契数列)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2044题目分析:其实仔细读题就会发现其中的规律, 其中;这是一个典型的斐波那契数列。代码如下:#include <iostream>using namespace std;int t, a, b;long long num[50];long long dp(int ...
2018-08-07 21:18:29
242
原创 HDU 2084 数塔 (动态规划DP)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084题目分析:此题采用动态规划自底向上计算,如果我们要知道所走之和最大,那么最后一步肯定是走最后一排数其中一个,向上退,倒数第二步肯定走最后一排数对应的倒数第二排最大的一个(将最后对应最后步走的最大的数加起来存在倒数第二步的数组中)再向上推,一直推到最上面的第0步,那么]最后所存的结果一定是最大的...
2018-08-07 21:05:38
284
原创 POJ 3617 Best Cow Line (字典序最小问题 & 贪心)
原题链接:http://poj.org/problem?id=3617问题梗概:给定长度为 的字符串 , 要构造一个长度为 的字符串 。起初, 是一个空串,随后反复进行下列任意操作。从 的头部删除一个字符,加到 的尾部。 从 的尾部删除一个字符,加到 的尾部。 目的是要构造字典序尽可能小的字符串 。 限制条件: 字符串 只包含大写英文字母 输出的字符...
2018-08-03 10:45:17
241
原创 HDU 2099 整除的尾数(枚举 & 暴搜)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2099思路分析:这道题的解法可以说是相当暴力了,但也有一些小坑,以下几点萌新们值得留意一下: 1. 仔细读题不难发现,枚举范围在 0 ~ 100; 2. 按照要求输出结果,即输出两位整数且前面补0; ...
2018-08-02 22:20:48
178
原创 HDU 2018 母牛的故事 (递归入门)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2018思路分析:问题分析:这道题的递推关系非常类似斐波那契数列,由题意不难得到以下函数递推式: 对于上述的递推函数,最简单的做法是编写一个递归的函数来实现。实际上,本题的递推函数是可以用一个递推过程的函数来实现的,即不需要用递归函数来实现。用递推函数效率...
2018-08-02 22:01:00
284
原创 51 Nod 1133 不重叠的线段 (贪心算法)
原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1133题目分析:感觉这到第不应该被分到二级算法题,比 1091 要水的多。拿到题后就发现是一道区间贪心题,首先将线段按起始点递减排列,如果起始点相同则按结束点递增排列。然后循环判断线段的结束点是否小于或等上一个线段的起始点,如果成立进行标记,然后标记的个数就...
2018-08-02 17:35:31
504
原创 51 Nod 1091 线段的重叠 (贪心算法)
原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1091思路分析:通过读题不难发现这是一道涉及贪心算法的题,刚开始上手做也是摸不着头脑。首先把所有的线段按起点由小到大进行排序,比如(1,5),(2,4),(2,8),(3,7),(7,9), 然后进行比较,每次比较保留最大的末尾数字,最终结果就是 max(m...
2018-08-02 16:47:11
277
原创 POJ 1664 放苹果 (递推思想)
原题链接:http://poj.org/problem?id=1664思路:苹果m个,盘子n个。假设 f ( m , n ) 代表 m 个苹果,n个盘子有 f ( m , n ) 种放法。根据 n 和 m 的关系可以进一步分析: 特殊的 n = 1 || m = 1 || n = 0 时只有一种方法 当 m < n时,即使苹果每个盘子放一个也没法放满所有盘子,题目允许有的...
2018-08-01 17:43:27
468
原创 HDU 1312 Red and Black (DFS & BFS)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312题目大意:有一间矩形房屋,地上铺了红、黑两种颜色的方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动,计算你总共能够到达多少块黑色的瓷砖。要求:输入包含多组数据,每组数据的第一行输入的是两个整数 W 和 H, 分别表示 x 方向与 y 方向上的瓷砖数量,并且 W 和 H 都不超...
2018-08-01 15:20:53
304
原创 HDU 1576 A/B (两种解法)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576分析:等式枚举法,由题意可得:, ,代入 , 得:,把变量 合在一起得: ;即满足 为 倍数,因为 ,所以解时唯一的。 使用扩展欧几里德算法 或 费马小定理 来求解,涉及到有关逆元的知识这里就不详细叙述了。代码如下: 方法一(等式枚举):...
2018-07-24 20:55:03
200
原创 51Nod 1013 3的幂的和
原题链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 首先得考虑到时间复杂度问题,由于题目中(0 <= N <= 10^9),用 for来累加求和是不现实的。通过观察我们可以发现,在 3^0 + 3^1 +...+ 3^(N) mod 1000000007 中 存在等比数列,通过化简...
2018-07-24 20:14:48
149
原创 UVA 10815 Andy's First Dictionary (C++ STL map && set )
原题链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1756这道题用STL解答还是比较简单的,下面就给大家分享用 set 和 map 的 AC 。解法一(map):#include <iostream&...
2018-07-22 10:44:39
270
原创 UVA 156 Ananagrams (STL multimap & set)
原题链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=92整体思路如下:先建立一个 multimap<排序的词,未排序的词> 来处理输入,完毕后将只有一个值的键放入一个set中,...
2018-07-22 10:26:16
186
原创 CodeForces 519B A and B and Compilation Errors (超水题)
这道题是超级水的,在博客上看有的人把这道题写的很麻烦。用 Python 的话是超级的好写,这里就奉上 C/C++ 的AC。代码如下:#include <cstdio>#include <iostream>using namespace std;int main(void) { long long int n, num; while (sca...
2018-07-21 16:06:06
250
转载 C++ STL快速入门
C++ STL中最基本以及最常用的类或容器无非就是以下几个:string vector set list map下面就依次介绍它们,并给出一些最常见的最实用的使用方法,做到快速入门。string首先看看我们C语言一般怎么使用字符串的char* s1 = "Hello SYSU!"; //创建指针指向字符串常量,这段字符串我们是不能修改的//想要创建 可以修改的字符串...
2018-07-21 15:54:08
2712
3
原创 [BZOJ2761] [JLOI2011] 不重复数字 (C++ STL - set)
不重复数字题目: 给出N个数,要求把其中重复的去掉,只保留第一次出现的数。例如,给出的数 为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复,去除后的结果为1 2 18 3 19 6 5 4。Input: 输入第一行为正整数T,表示有T组数据。接下来每组数据包括两行,第一行为 ...
2018-07-21 11:10:57
281
原创 HDU 1106 (1.3.5) 排序 (C语言描述)
排序Problem Description输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。Input输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的...
2018-04-29 23:27:18
301
原创 PAT 乙级 1004. 成绩排名 (20)(C语言描述)
读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例...
2018-04-19 14:51:49
184
原创 PAT 乙级 1003. 我要通过!(20) (C语言描述)
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;3. 如果 aPb...
2018-04-19 08:31:04
489
原创 PAT 乙级 1002. 写出这个数 (20)(C语言描述)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu分析:由于题目中输入的数字很大,并不能用数字类...
2018-04-18 22:28:10
240
原创 HDU 2673-shǎ崽 OrOrOrOrz(C语言描述)
问题描述问题是: 为您提供了一系列不同的整数, 请选择 "数字" 如下: 首先选择最大的, 然后是最小的, 然后是第二个最大的, 第二个最小的. 直到所有的数字被选中。例如, 给你 1 2 3 4 5, 你应该输出 5 1 4 2 3 。输入有多个测试用例, 每个案例从一个整数 n (1 < = N < = 10000) 开始, 跟随 N 个不同的整数。输出输出上面描述的不同整数序列。...
2018-04-17 23:42:39
256
原创 《挑战程序设计竞赛》1.6.2-POJ的题目Ants
#include <stdio.h>#define max(a, b) (((a) > (b)) ? (a) : (b)) #define min(a, b) (((a) < (b)) ? (a) : (b))#define MAX_N 1000000 int main(void){ int L, n, i; int x[MAX_N];...
2018-04-16 15:13:25
346
原创 《挑战程序设计竞赛》1.1 样例分析
题目:抽签内容:你的朋友提议玩一个游戏:将写有数字的 n个纸片放入口袋中,你可以从口袋中抽取 4次纸 片,每次记下纸片上的数字后都将其放回口袋中。如果这 4个数字的和是 m,就是你赢,否 则就是你的朋友赢。你挑战了好几回,结果一次也没赢过,于是怒而撕破口袋,取出所有纸 片,检查自己是否真的有赢的可能性。请你编写一个程序,判断当纸片上所写的数字是 k1, k2, …, kn时,是否存在抽取 4次和为...
2018-04-15 18:10:38
333
原创 HDU-2010.水仙花数(C语言描述)
Problem Description 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。现在要求输出所有在m和n范围内的水仙花数。Input 输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。Output ...
2018-04-15 18:07:03
330
原创 HDU-2032.杨辉三角(C语言描述)
Problem Description还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1Input输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。Output对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间...
2018-04-15 17:56:00
312
原创 PAT 乙级 1001. 害死人不偿命的(3n+1)猜想 (15)(C语言描述)
卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国...
2018-04-15 17:47:17
132
原创 《挑战程序设计竞赛》1.6.1-先从简单题开始
输入:n = 5 n = 4a = {2, 3, 4, 5, 10} a = {4, 5, 10, 20}输出:12(选择3、4、5时) 0(无论怎么选都无法组成三角形) ...
2018-04-15 17:03:37
272
原创 HDU-1004(C语言描述)
Let the Balloon Rise输入输入包含多个测试用例。每个测试用例都以数字 N (0 < N < = 1000) 为起点, 分布的气球总数。下 N 行包含一个颜色。气球的颜色是一个多达15个小写字母的字符串。带有 N = 0 的测试用例终止输入, 并且不处理此测试用例. 输出对于每种情况, 在单行上打印最流行问题的气球颜色。保证每个测试用例都有一个唯一的解决方案。示例输入5...
2018-04-14 22:48:42
1607
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人