
pat 算法笔记
PAT 算法笔记
索拉里斯星的镇静剂
这个作者很懒,什么都没留下…
展开
-
P1036 选数
https://www.luogu.com.cn/problem/P1036简单的选组合数加素数打表,5分钟搞定!#include<iostream>using namespace std;bool test[100000] = {0};int su[100000] = {0};int num = 0;void da() { for(int i = 2; i <=...原创 2020-04-13 15:36:53 · 248 阅读 · 0 评论 -
P1255 数楼梯(高精度递推) P2437 蜜蜂路线.cpp(高精度递推)
P1255 数楼梯题目描述楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。编一个程序,计算共有多少种不同的走法。输入格式一个数字,楼梯数。输出格式走的方式几种。输入输出样例输入 #1复制4输出 #1复制5说明/提示60% N<=50100% N<=5000)步骤见代码注释//高精度用法 首先这道题如果是数5000那么答案则会非常难求//如何做这道题...原创 2020-04-13 14:56:44 · 380 阅读 · 0 评论 -
简单背包问题 01和完全背包(P1616 疯狂的采药、P1048 采药.cpp)
P1616 疯狂的采药.cpp#include<iostream>#include<bits/stdc++.h>using namespace std;int T,M;int dp[100500] = {0};int wei[100500] = {0};int timee[100500] = {0};int main() { scanf("%d%d",&...原创 2020-04-12 14:41:14 · 291 阅读 · 0 评论 -
P1002 过河卒(dp动态规划,一维二维dp方法2种)
P1002 过河卒题目描述棋盘上 AA 点有一个过河卒,需要走到目标 BB 点。卒行走的规则:可以向下、或者向右。同时在棋盘上 CC 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,AA 点 (0, 0)(0,0)、BB 点 (n, m)(n,m),同样马的位置坐标是需要给出的。现在要求你计算出卒从 AA 点能够到达 BB ...原创 2020-04-12 14:39:04 · 351 阅读 · 0 评论 -
史上最详细,最易懂的01背包问题详解!教程
转载自deco,感谢博主。其实背包问题不难理解,但是如果在脑中直接模拟的话,理解总是不那么深刻,想了很久,虽然很容易写,但是能这么详细的把原理从头到尾讲出来的而且不是乱讲的,而且理解很深刻,这篇绝对是精品。。。。。感谢!!!!...转载 2020-04-11 15:36:32 · 719 阅读 · 0 评论 -
P4017 最大食物链计数(dfs记忆化搜索)
P4017 最大食物链计数题目提供者Flokirie难度普及/提高-历史分数无提交记录 查看题解标签进入讨论版相关讨论推荐题目展开题目背景你知道食物链吗?Delia 生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条。于是她来就来求助你,然而你也不会啊!写一个程序来帮帮她吧。题目描述给你一个食物网,你要求出这个食物网中最大食物链的数量。...原创 2020-04-10 17:52:57 · 416 阅读 · 0 评论 -
P2196 挖地雷(采用dfs 暴力搜索 / 采用顺推 DP)
P2196 挖地雷题目提供者Huangc难度普及/提高-NOIp提高组2001(或之前)题目描述在一个地图上有NN个地窖(N \le 20)(N≤20),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径。当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使某人能挖到最...原创 2020-04-08 14:08:33 · 308 阅读 · 1 评论 -
P1434 [SHOI2002]滑雪+最近各种自选dp小题
题目请自行搜索,来源于各个oj平台。P1434 [SHOI2002]滑雪标签各省省选上海2002题目描述Michael 喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael 想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2...原创 2020-04-07 16:44:17 · 1051 阅读 · 0 评论 -
递推求解专题练习(For Beginner)
链接http://acm.hdu.edu.cn/search.php?field=problem&key=%B5%DD%CD%C6%C7%F3%BD%E2%D7%A8%CC%E2%C1%B7%CF%B0%A3%A8For+Beginner%A3%A9&source=1&searchmode=sourceHDU2044 一只小蜜蜂…#include<iostream...原创 2020-04-04 14:20:20 · 272 阅读 · 0 评论 -
dp 问题汇总 含各种pat的例题和算法笔记例题
dp常见题汇总:数塔问题include<stdio.h>#include<iostream>#include<algorithm>#include<cstring>#include<fstream>using namespace std;int a[100][100];int dp[100][100];int main...原创 2020-04-01 17:15:45 · 707 阅读 · 0 评论 -
一些个人编程小技巧的记录纠错
一些编程小技巧的个人总结,方便后期查看:#include<bits/stdc++.h>using namespace std;int INF = 2147483647;double eps = 1e-8;#define Equ(a,b) (fabs((a)-(b))<(eps))#define More(a,b) (((a)-(b))>(eps))#defin...原创 2020-04-01 17:08:24 · 190 阅读 · 0 评论 -
问题 G: 找零钱 等贪心算法例子汇总
问题 G: 找零钱[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 128 MB解决: 557提交: 796统计题目描述小智去超市买东西,买了不超过一百块的东西。收银员想尽量用少的纸币来找钱。纸币面额分为50 20 10 5 1 五种。请在知道要找多少钱n给小明的情况下,输出纸币数量最少的方案。 1<=n<=99;输入有多组数据 1<=n...原创 2020-04-01 17:07:47 · 517 阅读 · 0 评论 -
RBG三颜色填格子(非DP实现)
**RGB三颜色的一种简单实现,,,,其实要把三种颜色填在5个格子里面或者10个格子里面,这首先明确就不是一种组合,而是一种排列,那么排列的话,更加确定的是,不止是顺序的排列,也可以重复出现数字,所以就是一种无约束的排列,可以不加hash数组进行筛选重复数字,,,,再有一个就是回溯法,记得重复连续的去掉,收尾一样的去掉。这里顺便对搜索做一下总结,搜索其实用处不大,,,因为排列和组合都有一套固定的...原创 2020-03-31 11:56:23 · 338 阅读 · 0 评论 -
问题 A: 最大连续子序列
问题 A: 最大连续子序列[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB解决: 493提交: 1082统计题目描述给定K个整数的序列{ N1, N2, …, NK },其任意连续子序列可表示为{ Ni, Ni+1, …, Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,例如给定序列...原创 2020-03-31 11:55:12 · 256 阅读 · 0 评论 -
问题 C: 神奇的口袋
问题 C: 神奇的口袋[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB解决: 1034提交: 2292统计题目描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个...原创 2020-03-31 11:52:56 · 362 阅读 · 0 评论 -
问题 B: 数列
问题 B: 数列[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB解决: 1027提交: 1881统计题目描述编写一个求斐波那契数列的递归函数,输入n 值,使用该递归函数,输出如下图形(参见样例)。输入输入第一行为样例数m,接下来有m行每行一个整数n,n不超过10。输出对应每个样例输出要求的图形(参见样例格式)。样例输入 Copy16样例...原创 2020-03-31 11:51:06 · 314 阅读 · 0 评论 -
Nn皇后问题c语言实现
Nn皇后问题,其实说白了就是排列,可以把整个棋盘,抽象成一个区间,就是排列了,这个棋子的位置,只需要求得它位置代表的数,那么就是填数,列就是位置。Simple!所以关键是列即为位置,这个很好理解,那么位置有了,数从1开始也解决了,先把框架写出来,注意从1位置开始填。数也从1开始,那么可以写出来如排列的框架。这里写一种暴力比较的方法。#include<stdio.h>#inclu...原创 2020-03-31 11:49:50 · 1146 阅读 · 0 评论 -
全排列c语言实现-讲解
**全排列的一个理解,不重复元素的情况,下面拿关键部分分析,首先这里是以 index为一个位置进行递归的,可以想象的是递归过程呈树状,第二点,注意递归的传递方式,还是传递位置, P数组只是起到暂存的作用,只要下次还是存满,那就已经被覆盖了,所以没必要考虑不用这个数的时候,再操作的问题,第三点,hash的作用是防止重复,比如说第二个位置,我已经用过1了,然后现在我换成2,for走动,那么再...原创 2020-03-31 11:49:19 · 566 阅读 · 0 评论 -
问题 A: 吃糖果
问题 A: 吃糖果[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB解决: 1391提交: 2235统计题目描述名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N...原创 2020-03-31 11:48:28 · 248 阅读 · 0 评论 -
1030 完美数列 (25分)
1030 完美数列 (25分)给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出 N 个正整数,每个数不超过 109。输出...原创 2020-03-31 11:47:39 · 305 阅读 · 0 评论 -
1043 输出PATest (20分)
1043 输出PATest (20分)给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest… 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过 104 的、仅由英文字母构成的非空字符串。...原创 2020-03-31 11:45:40 · 183 阅读 · 0 评论 -
1039 到底买不买 (20分)
1039 到底买不买 (20分)小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以...原创 2020-03-31 11:44:11 · 200 阅读 · 0 评论 -
1033 旧键盘打字 (20分)
1033 旧键盘打字 (20分)旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式:输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 105 个字符的串。可用的字符包括字母 [a-z, A-Z]、数字 0-9、以及下划线 _(代...原创 2020-03-31 11:43:05 · 201 阅读 · 0 评论 -
1029 旧键盘 (20分)
1029 旧键盘 (20分)旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。输出格...原创 2020-03-30 16:34:36 · 129 阅读 · 0 评论 -
Dfs搜索的一个简单例子
求一个数组中,组合出来刚好为40容量的可能性的数值递归搜索,把数组记得初始化,存在堆上面,然后需要注意的是generate这个函数,每次选择拿 与 不拿 这个数,最终就会导致,一个值的累加,但是这种方法粗暴简单,根本没有记录一个递归的痕迹,一个数组加以保存,所以要快速求得一个总值的匹配,可以用这种方法#include<stdio.h>#include<iostream>...原创 2020-03-30 16:23:45 · 186 阅读 · 0 评论 -
问题 A: 谁是你的潜在朋友
问题 A: 谁是你的潜在朋友[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB解决: 1392提交: 4556统计题目描述“臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会 并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从...原创 2020-03-30 16:20:14 · 195 阅读 · 0 评论 -
问题 B: 分组统计
问题 B: 分组统计[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB题目描述先输入一组数,然后输入其分组,按照分组统计出现次数并输出,参见样例。输入输入第一行表示样例数m,对于每个样例,第一行为数的个数n,接下来两行分别有n个数,第一行有n个数,第二行的n个数分别对应上一行每个数的分组,n不超过100。输出输出m行,格式参见样例,按从小到大排。...原创 2020-03-30 13:00:05 · 285 阅读 · 0 评论 -
问题 D: String Subtraction (20)
问题 D: String Subtraction (20)[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB题目描述Given two strings S1 and S2, S = S1 - S2 is defined to be the remaining string after taking all the characters in S2 from...原创 2020-03-30 12:48:49 · 154 阅读 · 0 评论 -
问题 I: 排名
问题 I: 排名[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB题目描述今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩按降序打印。输入测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 &...原创 2020-03-30 12:38:49 · 273 阅读 · 0 评论 -
问题 H: 整数奇偶排序
问题 H: 整数奇偶排序[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB题目描述输入10个整数,彼此以空格分隔。重新排序以后输出(也按空格分隔),要求:1.先输出其中的奇数,并按从大到小排列;2.然后输出其中的偶数,并按从小到大排列。输入任意排序的10个整数(0~100),彼此以空格分隔。输出可能有多组测试数据,对于每组数据,按照要求排序后输...原创 2020-03-30 12:30:12 · 320 阅读 · 0 评论 -
问题 C: EXCEL排序
问题 C: EXCEL排序[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB题目描述Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始)。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序排序...原创 2020-03-30 12:21:17 · 181 阅读 · 0 评论 -
问题 E: Problem B
问题 E: Problem B[命题人 : 外部导入]时间限制 : 1.000 sec 内存限制 : 32 MB题目描述请写一个程序,对于一个m行m列的(1<m<10)的方阵,求其每一行,每一列及主对角线元素之和,最后按照从大到小的顺序依次输出。输入共一组数据,输入的第一行为一个正整数,表示m,接下来的m行,每行m个整数表示方阵元素。输出从大到小排列的一行整数,每个整...原创 2020-03-30 12:14:32 · 354 阅读 · 0 评论 -
1035 Password (20分)
1035 Password (20分)To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem is that there are always some confusing passwords since it is hard to distinguis...原创 2020-03-30 12:06:21 · 116 阅读 · 0 评论 -
1048 数字加密 (20分)
1048 数字加密 (20分)本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 ...原创 2020-03-30 12:05:48 · 123 阅读 · 0 评论 -
1024 科学计数法 (20分)
1024 科学计数法 (20分)科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。输入格式:每个输入包含 1 ...原创 2020-03-29 09:36:33 · 179 阅读 · 0 评论 -
1010 一元多项式求导 (25分)
1010 一元多项式求导 (25分)设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。输入样例...原创 2020-03-29 09:35:57 · 108 阅读 · 0 评论 -
1005 Spell It Right (20分)
1005 Spell It Right (20分)Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English.Input Specification:Each input file con...原创 2020-03-29 09:35:05 · 109 阅读 · 0 评论 -
1025 PAT Ranking (25分)
1025 PAT Ranking (25分)Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in several plac...原创 2020-03-29 09:34:26 · 94 阅读 · 0 评论 -
1077 Kuchiguse (20分)
1077 Kuchiguse (20分)The Japanese language is notorious for its sentence ending particles. Personal preference of such particles can be considered as a reflection of the speaker’s personality. Such a ...原创 2020-03-29 09:33:51 · 146 阅读 · 0 评论 -
1014 福尔摩斯的约会 (20分)
1014 福尔摩斯的约会 (20分)大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字...原创 2020-03-29 09:33:20 · 92 阅读 · 0 评论