03 2022 档案
摘要:题目链接:https://www.luogu.com.cn/problem/P1387 有趣的dp思维题,可以一试; 题目思路: dp三步走,设状态,转移方程,dp结果 设dp[i][j]为以i,j为左下点的正方形的最长边长; 第二步转移方程: dp[i][j]=min(min(dp[i-1][j]
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P1057; 蛮有意思的一道题; 题目大意是我们可以传球的时候可以向相邻的两个人传球,那么求在n个人m次传球的情况下最后回到传球人手里的方案数; 第一步: 我们可以这样设状态方程dp[i][j]表示传了i次回到第j个人手里的
阅读全文
摘要:题目链接:https://www.lanqiao.cn/problems/1452/learning/; 看题目数据10^18是很吓人的,我以为得用高精度..........; 不!实则不然!long long 就可以过 然后这个题就变成模拟了: #include<bits/stdc++.h> us
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P1928 没想出来之前确实是不好想思路; 其实慢慢拆分就好了, 如果碰到'['就输入下一个数字,在递归处理空字串s1,让后面递归输入的等于s1,处理完成之后让空字串s进行累加; 还有很多细节以及步骤,请参考代码, #inc
阅读全文
摘要:题目链接:http://lx.lanqiao.cn/problem.page?gpid=T2735 题目思维还是很不好想的,但是很经典 开始用普通的等差数列肯定是错了; 所以开始优化: 为了保证公差的正确性,应该是两两进行取最大公约数; 这样的意思是:2,4,8(假设公差是2) 但是中间还有6; 所
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P1044 数论的应用,卡特尔数和组合数学的应用,算是纯数学题 代码及其注意事项如下: #include<bits/stdc++.h> using namespace std; int n; long long a[9000
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P1028 刚开始没读懂题目,后来明白了。 首先来模拟一下1到6的情况 并且对于每种情况,我们用数组a来保存 a[1]=1 a[2]=2=a[1]+1; a[3]=2=a[1]+1; a[4]=4=a[1]+a[2]+1;
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P2437 高精度斐波那契,和走楼梯差不多 代码及其注意事项如下: #include<bits/stdc++.h> using namespace std; int n,m; int len=1; int a[5200][5
阅读全文
摘要:题目链接:http://lx.lanqiao.cn/problem.page?gpid=T2730 没有过多的技巧,我就是一个刷题的垃圾 1 #include<bits/stdc++.h> 2 using namespace std; 3 bool vis[100010]; 4 int ans; 5
阅读全文
摘要:转载地址:https://blog.csdn.net/qq_39416311/article/details/102762635
阅读全文
摘要:题目链接:http://lx.lanqiao.cn/problem.page?gpid=T2893 0/1背包的变种题,dp思想的具体体现 我们可以用dp[i][j]来表示i个砝码能称j种重量,因为是进行个数统计,所以我们用逻辑(bool)数组来进行情况的判定,最后用ans进行统计后输出即可; 注意
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P1441 其实这道题是一个很令人匪夷所思的题,它的做法是dp+dfs,这是令人意外的,也是我见识短的暴露; 我们采取的策略是在n个数字中删除m个数的方式,并且从第一个数一一枚举 通过dfs过程找到一种状态以后,求出使用当前
阅读全文
摘要:转载地址:https://www.zhihu.com/question/495714825/answer/2237536045?utm_source=qq&utm_medium=social&utm_oi=1361831106631774208
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P1443 马走日字象走田,究竟怎么走呢? 画画图就明白啦, 除此之外,这个题就是一道稍微变形的bfs题目,需要注意的是,左对齐输出一定要有,否则你即使是运行结果对了也怎么都是WA,别问,说多了都是泪 1 #include<
阅读全文
摘要:讲的很好,总结的很到位,拿过来学习一下 转载地址:https://blog.csdn.net/liuzibujian/article/details/80962283
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P1451 开始的时候想麻烦了,经过一次次的调不过终于成功了; 本题其实是一道很中规中矩的搜索题,但是一些细节方面需要注意,并且值得注意的是,标记数组vis是不用回溯的,因为一部分元素||字符只能算一次,所以说就免去回溯了;
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P1746 也是很浅显的bfs模板题,甚至把我的上一篇关于mzc和男家丁的游戏的代码拿过来稍作修改就可以AC; 需要注意的是,在输入中输入的不是整形数组,而是字符型数组,否则输入会出错,这一点需要注意; 参考代码如下: 1
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P2298 在本质上是一道bfs迷宫的模板题 其实bfs的大部分方式还是有迹可循的,这里提供一种bfs的思路: 1 int bfs(int sx,int sy) 2 { 3 q.push((Pos){sx,sy}); //起
阅读全文
摘要:居然根据递归写出非递归形式,有本事把汉诺塔的非递归写一个?抱歉,我是菜鸡,不会! 递归形式:(很简单啦) 1 #pragma GCC optimize(3) 2 #include<iostream> 3 using namespace std; 4 int akm(int m,int n){ 5 i
阅读全文
摘要:1 #pragma GCC optimize(2)//O2 2 #include<bits/stdc++.h> 3 using namespace std; 4 const int M=10000;//最大多少个数组 5 typedef struct node 6 { 7 int a[M];//数据
阅读全文
摘要:1 #pragma GCC optimize(3) 2 #include<bits/stdc++.h> 3 using namespace std; 4 typedef struct stnode 5 { 6 int num;//编号 7 int score;//数据 8 struct stnode
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P3613; 首先用想到的是二维数组,其实我的第一感觉也是二维数组,但是很不幸,数据范围太大绝对会导致程序爆掉,导致MLE,所以保险的做法是STL中的map和vector做法 这里只介绍vector做法: #include<
阅读全文
摘要:题目链接:http://lx.lanqiao.cn/problem.page?gpid=T2993 思路很明确的搜索题,对于搜索题只要是主要好了题目要求并且按照题目要求去做就可以; 这个题需要注意的是一些地方的优化,比如开始的时候我们如果走过了,意思就是说已经走完了并且找到了最小的步骤,如果要是继续
阅读全文
摘要:还是有很多不足的,模拟思维还需加强,还有一直被诟病的图论 一:6的个数; 水题,没有过多的花里胡哨,手算(不太建议)或者代码模拟即可 参考代码如下: 1 #pragma GCC optimize(3) 2 #include<bits/stdc++.h> 3 using namespace std;
阅读全文
摘要:题目链接:http://poj.org/problem?id=2386 经典题目不得不做,很经典; 其实题目的详细说明在《挑战程序设计竞赛》有,我的思路是按照那上面来的; 在某一程度上应该是dfs模板题; 注意事项以及代码如下(poj注意头文件) 1 #include<bits/stdc++.h>
阅读全文
摘要:题目链接:https://www.luogu.com.cn/problem/P1605 比较经典的搜索题,其实题目不难,在某一程度上算是搜索题的模板, 需要注意的是在区分障碍物的处理方式; 注意事项和代码如下: 1 #include<bits/stdc++.h> 2 using namespace
阅读全文
摘要:题目很眼花缭乱,其实是0/1背包变形式子,注意事项以及AC代码如下: 1 #pragma GCC optimize(2) 2 #include<bits/stdc++.h> 3 using namespace std; 4 int dp[1010][1010];//在ti最晚时间,能看m个节目的最大
阅读全文
摘要:简单dp 思路很清晰,注意事项及实现代码: 1 #pragma GCC optimize(2) 2 #include<bits/stdc++.h> 3 using namespace std; 4 int a[100010]; 5 int dp[100010]; 6 int ans=INT_MIN;
阅读全文
摘要:简单dp 分爬和跳两种状态考虑即可 注意事项及代码实现: 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n; 4 int dp[10010][2];//0表示爬上去,1表示跳上去 ,dp表示当前楼层是爬上去的还是跳上去的 5 int a
阅读全文
摘要:混合背包顾名思义是讲0/1,多重和完全背包混合起来的背包问题,我们处理这种背包问题一般是进行条件判断处理然后在进行三个背包问题分析就可以了。 实战项目:https://www.acwing.com/problem/content/description/7/ https://www.luogu.co
阅读全文
摘要:根据这几天的学习情况,总结一下对于背包的理解和一些实现方式: 1.大名鼎鼎的0/1背包:这个就不多总结了 2.完全背包: 应该明白,通俗意义上完全背包指的是对于n个价值为v,重量为w的物品,每个物品可以无限次的取(而对于0/1来讲,则是只能取一次) 这怎么处理? 如果按照解01背包时的思路,令 f[
阅读全文
摘要:1 //lqs原创,已上传blog,侵权必究 2 #pragma GCC optimize(2)//O2 3 #include<bits/stdc++.h> 4 using namespace std; 5 const int M=10000;//最大多少个数组 6 typedef struct n
阅读全文
摘要:题目链接:https://www.lanqiao.cn/problems/553/learning/ 题目比较清晰,这里提供两种思路供于参考;; 先说第一种思路,dfs暴搜 爆搜就不用多说了,直接开搜 需要注意的是,按照题目要求只能一个方位最大只能走九个方位,然后按照题目的要求设计就行了 这个是演算
阅读全文