自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 [dp]洛谷P1990 覆盖墙壁 / Leecode790. 多米诺和托米诺平铺

看到大概就能猜出来用dp来做,因为满足了使用dp的无后效性(后面作出的操作不影响已经做完操作的结果)和子问题重叠(每铺一块砖都可以看作是一个子问题).而题目要求给出所有方案,不分优劣只数数量.最大的问题还是状态转移方程怎么写.过程中需要注意数据量过大导致的溢出问题.Leecode要求对1e9+7取模,这就导致3状态的状态转移过程中就可能发生数据溢出,所以要对每一次两两相加的运算进行取余,防止溢出.接下来讨论在这四种状态如何由前方的状态转移过来.将这四种状态命名为0,1,2,3,用。接上一个长条形方块转移.

2022-11-12 15:25:55 633 1

原创 Leecode 24.两两交换链表中的节点

声明好临时变量之后,第一个操作用来把rightNode的next结点交给leftNode的next结点.因为前三个结点的next都需要指向新的结点,而已经有临时变量存放它们的引用,所以优先把待会会被覆盖的rightNode,next放到正确的位置.这时候示意图长这样。原本以为链表是比较容易对付的知识点,但规模比较大的问题很容易在思考完成写代码的时候出现混乱,引发难以debug的问题.用画图这种更形象的方法可以比较有效的解决思路紊乱的问题.的移动,我们设置一个空结点重新作为头结点.交换的起点也是它.

2022-11-09 20:03:03 434

原创 2021蓝桥杯初赛砝码称重

题目链接打比赛的时候作为一个没打过acm的带一萌新,自然是毫无思路的.现在看到题目第一反应是dfs暴搜,但一看数据量…emmmm,100,o(2n)的dfs极限状态百分之百超时.抱着不撞南墙不回头的态度还是用暴搜写了一次#include <bits/stdc++.h>using namespace std;const int N = 100005;int n;int a[N];bool flag[N];int ans;void dfs(int idx,int left

2022-04-07 21:11:27 887 1

原创 洛谷P1164 小A点菜 dp

刚开始看感觉就是到普通的dfs直到我无视了作者的时间强调tle了一半之后这个dfs是优化后的,即便是过了前面的点但还是tle了最后一个,推测是极限情况下钱数足够把所有的菜都点一遍.#include <bits/stdc++.h>using namespace std;const int N = 1005;int n,m;int ans;int a[N];void dfs(int x,int y){ if(!x) ans++; else if

2022-03-31 20:01:20 362 1

原创 洛谷P1786 帮贡排序 暴力模拟

题目链接给帮派打广告都打到算法网站了.jpg 我也干过啊,那没事了令人窒息的一道模拟,算法基本是一目了然级别的,奈何要素实在太多,敲的时候莫名暴躁.#include <bits/stdc++.h>using namespace std;const int N = 150;struct users//用户结构体{ string id;//用户名 int post;//职位代号 int point;//贡献 int lv;//等级 int t

2022-03-23 21:46:48 473

原创 洛谷P1065 [NOIP2006 提高组] 作业调度方案 暴力模拟

题目链接题干是真的长,还贼复杂,半天才看懂意思.看到题解之前,我一直不敢相信这真的是个暴力模拟题…思路基本就是题解的,自己敲的时候加了思路注释#include <bits/stdc++.h>using namespace std;const int N = 25;const int T = 100005;struct info//加工属性{ int id;//在第几台机器加工 int cost;//消耗的时间};int workList[405];//

2022-03-23 20:59:50 554

原创 洛谷P2058 [NOIP2016 普及组] 海港 模拟+队列

题目链接看题目每个数据都挺大的,再加上这个诡异的要求,刚看到还是有点蒙的.有一会才看明白啥意思,选了双端队列来做.(主要是对数据范围判断失误了,数组+双指针应该也是能过的)这道题不仅卡时间,还卡空间,标记数组不能开太多要不会炸;刚开始按船为单位写,到查重的时候可以说是举步维艰,做题的时候还疑惑人数会不会太多然后炸内存,用双端队列这种动态类型直接存人头,再根据时间更新答案和标记数组,成功a题.#include <bits/stdc++.h>using namespace std;con

2022-03-22 17:40:41 426

原创 洛谷P1162 填涂颜色(bfs染色法)

#include <bits/stdc++.h>using namespace std;const int N = 35;int m[N][N];bool flag[N][N];int n;queue<pair<int,int> > p;int main(){ cin >> n; for(int i = 1 ; i <= n ; i++) for(int j = 1 ; j <= n ; j++)

2022-03-16 20:13:54 788

原创 洛谷P1098 [NOIP2007 提高组] 字符串的展开(模拟)

题目链接看着很复杂的一道模拟题,虽然写起来确实不怎么复杂,但细节还是比较多的.主要分析的就是-的处理情况,总体上就是展开和不展开(直接输出)的判断.需要展开的情况:前后有字符,且均为字母或数字字符后者-前者的ascii值>=1(=1时仍然是展开,但什么都不输出.我是用了个特判,但想想好像也不需要)那么不展开的情况就是非上述情况了.包括首尾,前后不为相同类型,甚至还有一堆-相连的一个测试点.我还纳闷为啥还有90分这种情况总体上还是判断写的太渣了,但我又懒得改,开摆!#includ

2022-03-16 17:12:11 722

原创 线性dp模板题 Acwing 898. 数字三角形

题目链接听y总讲课听到状态为最大值,突然醍醐灌顶一般的有思路了,然后直接把题a了出来,我也没想到会这么顺利.jpg y总,我悟了!拿到题目,稍加思索,第一反应是dfs,但想想求最大值果然还是bfs合适一点吧?仔细分析,dfs显然要每条都走一遍,毫无争议的O(2n);bfs要从上到下搜,因为在最后一步之前都无法判断最佳路线,仍然是O(2n).但这个500的数据范围,emmmm 分析失败.jpg文字题解看不懂,直接冲进y总小课堂,听到了从下到上分析,状态存储,最大值…emmm要素察觉!为什么要从

2022-03-10 18:58:24 199

原创 洛谷P1518 [USACO2.4]两只塔姆沃斯牛(模拟)

题目链接很有意思的一道模拟题,之前其实看过挺多次的,都因为没思路或者觉得难写没动.今天静下心仔细研究下,总算是A掉了.这道题我遇到的坑点还是不少的,如果完全靠自己做结果应该是个未知数,之前影响我对这道题难度判断的地方就是边界检查和无解判断.边界检查这个多做点题还是有经验了的,就是把地图开大点,地图边界算作障碍物,就可以省去比较繁琐的越界检查.即便如此我还是因为少开了一行一列而被迫debug.无解判断偷摸看了题解,有哈希和数组两种判断法,我开了个三维数组来作判断.农夫在同一个方向进入同一格的次数过多,

2022-03-09 23:33:53 326

原创 洛谷P1443 马的遍历(bfs)

题目链接很适合做bfs模板题的一道题,用stl中的队列和pair解决.要是不看题解我就写成深搜了#include <bits/stdc++.h>using namespace std;const int N = 505;queue<pair<int,int> > q;//队列,存待跳结果int ans[N][N];//存步数const int dx[8] = {-1,-2,-2,-1,1,2,2,1};const int dy[8] = {2,1,-

2022-03-09 21:09:45 362

原创 天梯赛 L2-021 点赞狂魔 (25 分)

题目链接思路这道题在L2里属于偏简单的一道,数据范围很友好,倾向于使用逻辑而非算法.但想要比较轻松的完成这道题目还是需要一些stl使用经验的.对于一个用户,有几个需要记录的属性:姓名,用于输出总点赞数,用于确定输入标签的数量,以及确定输出顺序的次要因素点赞的标签总数,确定输出顺序的主要因素点赞过的标签数,用于去重.实现过程对于一个用户的属性,用一个结构体可以轻松容纳;姓名和点赞数输入都会给出,存下来就行;在输入用户点赞的标签时,边判重边累加其点赞过的标签总数即可.判重我使用了se

2022-02-22 17:48:40 889

原创 洛谷P1540 [NOIP2010 提高组] 机器翻译

题目链接又是一道快乐翻车题刚开始的模拟做法#include <bits/stdc++.h>using namespace std;#define N 1005int ans, m, n;bool s[N];int flag = 0, x[N], a[N];int main(){ cin >> m >> n; for ( int i = 0 ; i < n ; i++ ) { cin >> a

2021-11-08 20:46:39 198

原创 stl list实例——洛谷P1160 队列安排

题目链接#include <bits/stdc++.h>using namespace std;int n, m;list<int> lt;/*list是stl自带的双向列表 * 它不支持随机查询,但可以快速地插入和删除数据 * 这道题正好考察了链表重要的三个基本操作: * 插入,删除,浏览 * 这道题很适合熟悉list的用法 */int main(){ cin >> n; list<int>::iterator i

2021-11-08 19:58:30 495 1

原创 洛谷P2678 [NOIP2015 提高组] 跳石头

题目链接/*思路:二分枚举 * 由于给定了起点(0)和终点(d)的确切位置(有界性) * 并且石头按序排列(单调性) * 而答案要求最小值最大(最大值最小也可以,这道题不是) * 这就满足用二分搜索做题的条件 * 虽然直接求出正确答案很难,但可以用较低的复杂度枚举答案 * O(lg(n))的复杂度是完全可以接受的 */#include <bits/stdc++.h>using namespace std;#define N 50005int a[N];int d, m

2021-11-05 19:06:38 203

原创 Codeforces Round #748 (Div. 3) D1. All are Same

原题链接纯暴力枚举思路是先找所有数的最小值,然后求所有数与最小值差值的最大公因数.思路很清晰,实现起来老麻烦了,WA了n次才过还是吃了不熟悉stl的亏(//思路是找最小值(必须是最小值)//找差值,然后求所有差值的最大公约数#include<bits/stdc++.h>using namespace std;int gcd(int x, int y)//压根没用上的最大公约数函数.jpg{ int r=x%y; while(r!=0) { x=y; y=r;

2021-10-14 21:12:15 118

原创 Codeforces Round #748 (Div. 3) C. Save More Mice

本来以为会是个高深的动态问题,没想到还是贪心(枚举离洞最近的老鼠,模拟猫和老鼠的行动即可#include<bits/stdc++.h>using namespace std;#define N 400005bool cmp(int a,int b){ return a>b;}int main(){ int t; cin>>t; while(t--) { int n,a[N],m; cin>>m>>n; for

2021-10-14 19:38:23 143

原创 四则运算(vector模拟栈,无括号版)

今日数据结构课讲到栈,突然提到这道陈年老题用栈去实现,遂脑洞凿开自己写了一遍.顺便用了vector模拟栈,是平时没怎么用过的类型所以改了老半天的bug还做了半天的笔记.然后看了一眼原题是有括号的,寄!#include<bits/stdc++.h>using namespace std;typedef vector<char> vc;typedef vector<int> vi;vc num;//存放数字,即用即清vc s;//存放运算符vi n;//

2021-10-12 17:56:38 182

原创 Codeforces Round #747 (Div. 2) B. Special Numbers

原题链接用快速幂的思路做,通过k的二进制位数表示答案中加不加相应的位数.复杂度O(logn)#include<bits/stdc++.h>using namespace std;#define LL long longconst int mod=1e9+7;int main(){ int t; cin>>t; while(t--) { int n,k,i; LL ans=0;//存答案 LL flag=1;//存要加进去的数 cin&g

2021-10-10 14:30:12 127

原创 洛谷P3955 [NOIP2017 普及组] 图书管理员

题目链接纯粹的暴力枚举,复杂度O(n2)因为题目数据很小,所以很安全,不会超时.#include<bits/stdc++.h>using namespace std;#define N 1005#define LL long longint book[N];//放书int flag;//放需求码长度int user;//放需求码int n,m;//放书的数量和读者的数量int main(){ int i,j;//老工具人 cin>>n>&g

2021-10-08 19:57:20 513

原创 洛谷P3817 小A的糖果

原题链接暴力枚举+贪心.刚开始想多了,后来想想只需要考虑当前糖果和前面糖果的和不超限即可,所以可以边输入边处理.复杂度O(n)#include<bits/stdc++.h>using namespace std;#define N 200005#define LL long longint n,m;//存盒子数量和上限LL ans;//存答案int a[N];//存糖果int main(){ int i=0;//指针初始化0 cin>>n>

2021-10-08 19:23:28 142

原创 Codeforces Round #744 (Div. 3) E1. Permutation Minimization by Deque

题目链接题意大概是给n个不重复元素和一个空双端队列,要求按给出的顺序将这些元素插入队头或队尾,来保证最后得到的队列字典序最小。思路就是贪心,刚开始用了数组纯暴力模拟的办法。#include<bits/stdc++.h>using namespace std;#define N 200005int main(){ int t; cin>>t; while(t--) { int n,i,j; int a[N]; cin>>n; int

2021-10-01 17:28:14 120

原创 Codeforces Round #744 (Div. 3) B. Shifting Sort

题目链接一道模拟题,题意是给一个长度n的数组,用n次以下选定一个区域集体左移的操作把它排序成一个非递减的数组。刚开始用冒泡写,结果下标和验重都出了问题,比赛直接寄了。之后换选择思路,还是在验重和不用排的情况出事,改了下结构才好。#include<bits/stdc++.h>using namespace std;#define N 60int a[N],ans[N];//原数组和目标数组int l[N],r[N],d[N];//三个输出值int main(){ int

2021-10-01 15:32:13 193

原创 Cpp:从入门到Python(到二维数组)

花了几个小时连看带敲简单了解了下Python的语法,实在是太香了.jpgimport math # 数学函数import random # 随机数函数苹果 = 50 # 在插件帮助下可以用中文直接当变量名,tql水果 = '苹果' # 也完全不需要声明类型,tqlprint('\n', 苹果) # 也不用分号什么的,单双引号还不敏感,tqlif 苹果 > 20: # if完全不需要括号,只需要一个冒号,tql print('一大堆苹果!')# Python的缩进有

2021-09-24 15:31:28 236

原创 cf educational round114 div2 B

原题链接题意理解失误,思路都是一样的计算边界比较,但边界算错了就尴尬了…我理解中一个字母是不能同时作为两组的成员的,比如说AAA中应该有两对而不是三对,总有一个不算数。而实际上,题目中的AAA就是三队…然后公式就写错了,寄改了公式就没啥好提的了。#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int a[3],m; for(int i=0

2021-09-22 19:35:33 88

原创 acw17周周赛 T2 方格集数量

原题链接这道题真的给我恶心坏了……本来是以为自己的思路出了问题,极限答案多出来几千多后来按其他人的思路做了一遍,还是莫名其妙的多几十找了半天才发现是pow函数没做强制转换的锅…pow() 函数用来求 x 的 y 次方的值。头文件:math.h语法/原型:double pow(double x,double y);参数说明:x:双精度数。y:双精度数。返回值:x 的 y 次方的值。大概是因为极限情况下数值过大把double的整数部分撑炸了,得强制类型转换才成。我的思路按数枚举

2021-09-22 18:14:44 119

原创 洛谷P3654 First Step (ファーストステップ)

数据范围很小,暴力枚举出奇迹,复杂度O(r*c)第一次开的是string的一维数组,结果re了,换了字符数组解决,结果出了俩wa。发现是没有特判k==1的情况,遂修改ac。#include<bits/stdc++.h>using namespace std;#define N 105typedef long long LL;//string s[N];//这么开rechar s[N][N];int main(){ int r,c,k; int i,j; LL an

2021-09-15 20:50:42 207

原创 cf ground16 b min-mex cut

题目这道题属于是没看明白题意,翻译搞了半天一脸懵逼,看赛后的视频讲解还是一脸懵逼盯着题愣了半天才悟出来咋回事…题意有一个mex规则,在一串二进制数中,只有0为1,只有1位0,而都有则为2。给若干个二进制代码,把它分解成若干子串,使子串mex的总和最小。分析由题意可见一个串最大的mex为2,所以这道题不会出现2以上的输出。一个或一串0的mex为1,而一串1的mex为0。那么把原串分解成若干串0和若干串1的集合,最后和2比较即可。Talk is cheap#include<bits/s

2021-09-14 21:46:03 275

原创 acw周赛16t2 截断数组

自己的勉强ac代码复杂度之前错算了,优化前的复杂度是O(n2)级别的,直接超时虽然是有前缀和的思路,但并没有建前缀和数组,对于每一个第二次下标还是要遍历前面的下标但通过优化和猜数据居然过了,有点…不知道该说什么而且总感觉哪里还是不对劲,感觉集合更新数据还是写错了但我没有证据最绝望的是ac交上去之后看了一眼表,比赛刚好结束一分钟…谢谢,血压高起来了.jpg#include<bits/stdc++.h>using namespace std;#define MAX 100005

2021-09-14 19:59:12 150

原创 连连看课设

rt 主要是给朋友和某学长检查开源用的,懒得打书面介绍了。资源,思路和部分算法逻辑来自一篇公众号的文章。添加了宏定义地图大小,动态难度和计时器,其他部分也是按自己理解敲的,差距会比较大。由于运行和绘制逻辑导致计时器并不能实时显示,需要操作之后才会更新在屏幕上。安装Easyx库,复制源代码,复制资源到源代码根目录即可运行(大概BGM自己随便加一首喜欢的jpg格式歌曲改名bgm即可。Talk is cheap,show you my code.#include<iostream>#

2021-05-27 21:35:50 1851 2

原创 EasyX入门笔记

写在前面的话这是刚学C的本蒟蒻第一次挑战控制台程序以外的什么是EasyXEasyX是一个适合像我这样的蒟蒻编程初学者操作的图形渲染库。本质上,EasyX是将Windows繁琐的图形绘制操作封装在头文件中,从而实现用函数简单的调用。使用EasyX百度EasyX官网,从官网中即可下载安装程序。它可以将EasyX直接安装在VS中。使用EasyX需要在程序中添加头文件 include<graphics.h> 。EasyX帮助文档:EasyX在线文档EasyX中的坐标和设备坐标和数学

2021-05-07 19:48:55 14270 7

原创 反面教材:(失败的)学生管理系统

仅供娱乐,请勿参考文章目录说在前面的话前言1 需求分析1.1 功能性需求1.2 非功能性需求2 概要设计2.1 系统描述模块图2.1.1 系统流程描述图2.1.2 系统菜单描述图3 详细设计3.1 功能模块描述图3.1.1 输入模块3.1.2 增加模块3.1.3 修改模块3.1.4 打印模块3.1.5 查找模块3.1.6 求平均分模块4 用户使用说明5 调试与测试6 源程序清单7 参考文献8 体会与感想说在前面的话这是我学习程序语言以来的第一个失败的程序……由于写这一大堆代码的时候才学到数组和字符串

2021-04-14 21:11:55 142

原创 一个蒟蒻的C语言学习历程——1

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-12-13 16:47:45 138

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除