题目
Lopka
大一新生 真.萌新
大四新生 还是萌新
现在工作 依然萌新
展开
-
区间DP入门+优化
区间DP原理先对小区间进行操作得到局部最优解, 然后通过小区间的最优解来得到大区间的最优解。利用了最优子结构和无后继影响的特性。DP模板#include<iostream>#include<algorithm>using namespace std;typedef long long ll;ll dp[2000][2000];int main(){ init(); // 初始化DP for(int len=1;len<=n;len++) // 遍历子原创 2020-10-31 15:43:00 · 732 阅读 · 1 评论 -
树的遍历总结
一.树的遍历方式树的遍历方式按节点数据访问位置分为前序遍历,中序遍历和后序遍历。首先就是,访问左子树和右子树的顺序是一样的,总是 访问左子树->访问右子树,这样很明显,访问当前根节点数据的程序有三个位置可以放,分别是:访问根->访问左子树->访问右子树(前序遍历);访问左子树->访问根->访问右子树(中序遍历);访问左子树->访问右子树->访问根(后序遍历);0.树的定义struct node{ int num; node *l; node原创 2020-10-21 23:01:03 · 325 阅读 · 0 评论 -
蓝桥杯算法整理第一节 深度优先搜索
DFSDFS原理:递归DFS思想:不撞南墙不回头DFS例题:走迷宫,全排列(等)DFS延伸:记录路径,剪枝模板void DFS(int x,int y){ if(满足所需要的条件) { 相应的操作;return;} else{ for(int i= ; ;) //如果是方向的话,会枚举方向 { 枚举加方向的新坐标; if(界限 :例如:不能出到地图外,原创 2020-10-11 22:23:55 · 575 阅读 · 0 评论 -
蓝桥杯 试题 历届试题 买不到的数目
可怕的数论题这个数的表达式是z=ax+by其中ab由题目给出这个最大的不能得到的数是a*b-a-b证明就不写了,反证法看起来挺好理解的#include<iostream>using namespace std;int main(){ int a,b; cin>>a>>b; cout<<a*b-a-b<<endl;}...原创 2020-09-01 21:43:04 · 154 阅读 · 1 评论 -
怪盗——1412(排列组合
题目描述一个长度为n+m+k包含n个数字1,m个数字2和k个数字4的数组,最多可能有多少个子序列1412?如果一个序列是数组的子序列,当且仅当这个序列可以由数组删去任意个元素,再将数组中的剩余元素按顺序排列而成。输入描述:第一行一个整数t,表示测试用例的组数。接下来{t}t行每行三个整数n,m,k表示一组测试用例。输出描述:对于每组测试用例输出一行一个整数表示答案。示例1输入36 7 81 2 26 0 3输出50400备注:{1<=t<=200000}1&原创 2020-05-23 02:05:47 · 458 阅读 · 0 评论 -
Dis2(distance2)
题目描述给出一颗n个点n−1条边的树,点的编号为{1,2,…,n-1,n}1,2,…,n−1,n,对于每个点i(1<=i<=n),输出与点{i}i距离为{2}2的点的个数。两个点的距离定义为两个点最短路径上的边的条数。输入描述:第一行一个正整数{n}n。接下}n−1行每行两个正整数u,v表示点u,v之间有一条边。输出描述:输出共n行,第i行输出一个整数表示与点i距离为2的点的个数。样例输入41 22 33 4输出1111题目分析其实这道题也不是很难,主要原创 2020-05-23 01:47:03 · 705 阅读 · 0 评论 -
7-1 汉诺(Hanoi)塔问题 (20分)
古代某寺庙中有一个梵塔,塔内有3个座A、B和C,座A上放着64个大小不等的盘,其中大盘在下,小盘在上。有一个和尚想把这64 个盘从座A搬到座B,但一次只能搬一个盘,搬动的盘只允许放在其他两个座上,且大盘不能压在小盘上。现要求用程序模拟该过程,输入一个正整数n,代表盘子的个数,编写函数void hanoi(int n,char a,char b,char c)其中,n为盘子个数,从a座到b座,c座作为中间过渡,该函数的功能是输出搬盘子的路径。输入格式:输入在一行中给出1个正整数n。输出格式:输出搬原创 2020-02-26 22:19:10 · 2889 阅读 · 0 评论 -
10进制转换2进制
本题要求实现一个函数,将正整数n转换为二进制后输出函数接口定义:void dectobin( int n );函数dectobin应在一行中打印出二进制的n。建议用递归实现。裁判测试程序样例:#include <stdio.h>void dectobin( int n );int main(){ int n; scanf("%d", &n); dectobin(n); return 0;}/* 你的代码将被嵌在这里 */输入样例:原创 2020-02-26 22:17:26 · 432 阅读 · 0 评论 -
6-3 递归实现指数函数 (15分)
本题要求实现一个计算pow(x,n) (n≥1)的函数。函数接口定义:double calc_pow( double x, int n );函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内。裁判测试程序样例:#include <stdio.h>double calc_pow( double x, int n );int main(){ double x; int n; scanf("%lf %d", &x, &a原创 2020-02-26 22:09:18 · 2925 阅读 · 0 评论 -
HDU - 1541圆桌问题
题目描述圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。Input多组数据,每组数据输入:好人和坏人的人数n(<=32767)、步长m(<=32767);Output对于每一组数据,输出2n个大写字母,‘G’表示好人,‘B’表示坏人,50原创 2020-01-22 22:15:02 · 194 阅读 · 0 评论 -
HDU-1412 {A} + {B}
题目描述给你两个集合,要求{A} + {B}.注:同一个集合中不会有两个相同的元素.Input(输入每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开.Output(输出针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开.Sample Input(样例输入1 212 31 211 2S原创 2020-01-22 22:09:27 · 288 阅读 · 0 评论 -
高精度乘法(High precision multiplication
Background IntroductionBulls are so much better at math than the cows. They can multiply huge integers together and get perfectly precise answers … or so they say. Farmer John wonders if their answers are correct. Help him check the bulls’ answers. Read i原创 2020-01-14 16:53:27 · 286 阅读 · 0 评论 -
PAT 乙级 1006 换个格式输出整数 (15分)
题目描述让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式每个测试用例的输出占一行,用规定的格式...原创 2019-12-19 19:54:44 · 128 阅读 · 0 评论 -
PAT 乙级 1005 继续(3n+1)猜想 (25分)
题目描述卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关键数”,如果 n 不能被数列中的其他原创 2019-12-18 13:47:28 · 152 阅读 · 0 评论 -
BFS 经典问题 走迷宫
题目描述定义一个二维数组:int maze[5][5] ={0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入描述一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。输出描述左上角到右下角的最短路径,格式如样例所示。样例输入0 1 0 0原创 2019-12-05 23:17:21 · 255 阅读 · 0 评论 -
PAT 乙级 1004 成绩排名 (20分)
一天一道PAT乙级,督促自己疯狂刷题原创 2019-12-05 15:03:00 · 140 阅读 · 0 评论 -
PAT 乙级 1003 我要通过! (20分)
一天一道PAT 乙级 督促自己疯狂刷题原创 2019-12-04 21:16:22 · 247 阅读 · 1 评论 -
PAT 乙级 1002 写出这个数 (20 分)
一天一篇PAT乙级,督促自己疯狂刷题原创 2019-12-04 00:27:32 · 172 阅读 · 0 评论 -
PAT 乙级 1001 害死人不偿命的(3n+1)猜想
一天一篇PAT乙级,督促自己疯狂刷题原创 2019-12-03 00:03:02 · 119 阅读 · 0 评论 -
斐波那契数列(PTA上老师布置的坑题
6-1 使用函数输出指定范围内的Fibonacci数 (20 分)这个题有点坑,不过看他的样例描述应该还是很好过的完整的代码下面是全代码#include <stdio.h>int fib( int n );void PrintFN( int m, int n ); int main(){ int m, n, t; scanf("%d %d %d", &m, &n, &t); printf("fib(%d) = %d\n", t原创 2019-12-02 18:10:42 · 2141 阅读 · 0 评论 -
The longest common substring
两个字符串之间最长的且相同的前缀和后缀原创 2019-12-01 01:29:31 · 123 阅读 · 0 评论 -
出生年
题目简介以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话输入格式输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。输出格式根据输入,输出x和能达到要求的年份。数字间原创 2019-11-30 19:29:19 · 2576 阅读 · 2 评论 -
用泰勒展开计算cos的近似值(闲的没事码来玩玩
cos的泰勒展开泰勒展开的公式如图(1-1)所示思路就是一个多项式相加的问题,找到通项一顿操作即可#include <stdio.h>#include <math.h>double funcos( double e, double x );int main(){ double e, x; scanf("%lf %lf", &e, &x); printf("cos(%.2f) = %.6f\n", x, funcos(e原创 2019-11-30 15:55:22 · 6104 阅读 · 5 评论 -
水仙花数——-计算所有N位水仙花数(有一个测试点超时
这是我在做C语言作业的一道题的时候,用老师给的办法有一个测试点过不去,然后发现的小坑原创 2019-11-30 15:29:13 · 7166 阅读 · 4 评论