随笔分类 - luogu 题解
摘要:题面 题目传送门 前言 无聊的进制转换 正文 正数是相当好处理的…… 整除简单余 \(0\) 即可 重点是对于负数且无法整除的情况…… 也好办捏,多商一,然后余数就为正力! 代码 #include<iostream> #include<cstdio> using namespace std; cha
阅读全文
摘要:题面 题目传送门 前言 很古老的搜索典题力! 正文 其实就是更新参数…… 以及一个可行性剪枝 代码实现: 注意到给的 \(D_i\) 是没法直接用的,差分处理 设置三元组 \((x,y,z)\) 为参数,分别表示处理到第 \(x\) 个加油站,当前油量 \(y\),当前花费 \(z\) 然后初始从
阅读全文
摘要:题面 题目传送门 前言 好无聊的高精度 正文 需要维护两个操作 高精度加法 倒转字符串(判断回文、和加法操作都需要捏!) 代码 #include<iostream> #include<algorithm> #include<cstring> using namespace std; const in
阅读全文
摘要:题面 题目传送门 前言 也是爆切上提高组 T4 力,虽然是上个世纪的 正文 显然是 \(N\) 进制,\(N\) 个数(\(0\) 到 \(N-1\)) 扔一个结论上去:在当前行出现 \(i\) 个两位数当前行所对应的数为 \(i\) 上面那个可以手动模拟一下 当然,重点还是判断函数 需要通过层层筛
阅读全文
摘要:题面 题目传送门 前言 好水的普及组 T1 正文 简单模拟枚举即可 代码 #include<iostream> using namespace std; int main(){ int n,k=1; cin>>n; while(n>k){ n-=k; k++; } if(k%2==0){ cout<
阅读全文
摘要:题面 题目传送门 前言 这为什么是个黄题啊? 这不纯纯语言基础题吗…… 正文 给所有数存入字符串数组 排序即可 怎么排序,比较字典序 对于字符串 \(s1,s2\) 的拼接顺序 自然有 \(s1+s2\) 与 \(s2+s1\) 两种 然后比一下即可! 代码 #include<iostream> #
阅读全文
摘要:题面 题目传送门 前言 无聊的斐波那契数列变式 正文 这个其实依照题意直接模拟即可 代码 #include<iostream> using namespace std; const int maxn=25; int a,n,m,x,ans; int f[maxn],sum[maxn]; int ma
阅读全文
摘要:题面 题目传送门 前言 前几道题目都是古老的 NOIP 原题,所以 full of water 不显然的二进制拆分捏! 正文 其实就是一个套一个的递归调用 我们可以把一个数的二进制拆分,然后指数就是又可以做二进制拆分捏,再次调用递归函数即可 处理一些小细节 \(2^1\) 和 \(2^0\) 就不用
阅读全文
摘要:题面 题目传送门 前言 高精度的板子题…… 正文 水过 代码 #include<bits/stdc++.h> using namespace std; int a[2000],b[2000],c[2000],sum[2000]; void pplus(int *a,int *c){ int jw=0
阅读全文
摘要:题面 题目传送门 前言 简单枚举捏! 正文 记三个三位数分别为 \(a,b,c\),满足 \(a<b<c\) 显然 \(a \in [123,333]\),直接暴力统计即可捏! 代码 #include<iostream> using namespace std; int main(){ for(in
阅读全文
摘要:题面 题目传送门 前言 好诈骗…… 正文 众所周知,我们并不关心他们离开的顺序 换言之,士兵之间没有差别 所以,两个人相遇同时掉头等价于交换灵魂继续前进! 所以最大值与最小值将会非常明显…… 代码 #include<iostream> using namespace std; int n,l,ans
阅读全文
摘要:题面 题目传送门 前言 基本上和 P1004 思路一致…… 正文 直接贴个代码吧! 代码 DP: #include<iostream> #define int long long using namespace std; const int maxn=55; int m,n,a[maxn][maxn
阅读全文
摘要:题面 题目传送门 前言 再也不手搓高精了,调了三个点还是没出来,最后老老实实写 __int128 正文 显然行与行之间都是相互独立的子问题 区间 DP 捏! 我们记 \(f_{i,j}\) 表示取数取到只剩区间 \([i,j]\) 的最优得分 初始化都是 \(0\) 考虑转移 区间 \([i,j]\
阅读全文
摘要:题面 题目传送门 前言 走迷宫 Promax,走两遍…… 正文 动态规划 对于这种迷宫图的转移,往往有 \(dp_{i,j} = \max \lbrace dp_{i-1,j},dp_{i,j-1} \rbrace + mp_{i,j}\) 参考上述式子,注意到我们如果依照题意分两步实现的话,会存在
阅读全文
摘要:题面 题目传送门 前言 云落第一眼,矩形面积并? 第二眼,二维树状数组矩修单查 正文 第三眼,就查一个点啊,直接枚举每次更新对 \((x,y)\) 是否有效即可 难以论说 代码实现 可以用结构体存入四个坐标以及编号 然后直接循环遍历即可 代码 #include<iostream> #define x
阅读全文
摘要:题面 题目传送门 前言 我嘞个诈骗图片啊 云落以为是象棋棋盘大小,没曾想 \(n,m \le 20\) 正文 显然有 DP 直接做 转移方程形如 \(f_{i,j} = f_{i-1,j} + f_{i,j-1}\) 注意一些小细节: 比如说禁入点可能越界,所以需要 inbound 函数判断一下 再
阅读全文
摘要:题面 题目传送门 前言 试机题,水题(梦开始的地方) 正文 一边哭,一边丢 代码 #include<bits/stdc++.h> using namespace std; int main(){ int a,b; cin>>a>>b; cout<<a+b<<endl; return 0; } 后记
阅读全文
摘要:题面 题目传送门 前言 试机题,水题(梦开始的地方) 正文 看这里一望无际—— 代码 #include<bits/stdc++.h> using namespace std; int main(){ printf(" ********\n"); printf(" ************\n");
阅读全文
摘要:题面 题目传送门 前言 无话可说,这是云落梦开始的地方 勾起了些许回忆呢~ 正文 可以说是一题多解,并且是百做不厌的好题兼典题 链表是相当好做的 当然,递归直接做也是可以的,毕竟一题多解嘛 其实算法思路不是很想多说 毕竟每次一个人出局,和删除一个节点是完全等效的 所以直接把约瑟夫问题抽象成一个循环链
阅读全文
摘要:题面 题目传送门 前言 刚拿到题面:离谱的爆搜剪枝毒瘤题 看到 $ n $ 是奇数:直接做做完力! 正文 两句话秒了(这句也算) 罗伯法填幻方,直接模拟即可 代码 #include<iostream> using namespace std; const int maxn=48; int n,a[m
阅读全文