码题集
Rachel caramel
这个作者很懒,什么都没留下…
展开
-
讲价 数学问题
数学类的算法题原创 2022-09-16 12:11:34 · 216 阅读 · 0 评论 -
字串差值 dp
dp原创 2022-09-16 11:01:14 · 108 阅读 · 0 评论 -
逆波兰表达式 (利用stl
逆波兰表达式(后缀表达式)原创 2022-09-16 10:53:19 · 169 阅读 · 0 评论 -
求解同余方程 数论 扩展欧几里得
同于方程 扩欧原创 2022-07-31 22:42:46 · 134 阅读 · 0 评论 -
分子个数 数论(欧拉函数 前缀和
欧拉函数原创 2022-07-31 17:09:39 · 203 阅读 · 0 评论 -
河内双塔 递归
题目:思路:总的来说,和有汉诺塔的原题差不多,只要在此基础上*2即可所以先考虑汉诺塔原题该如何解决1.将n-1个盘子通过C然后放置到B上2.再将最大的盘子放到C3.将n-2个盘子通过C放置到A上4.第二大的放到C。。。。。TLE做法:#include <cstdio>#include <iostream>#include <cmath>using namespace std;const int maxn=111111;int n;int原创 2022-05-21 20:35:09 · 148 阅读 · 0 评论 -
mxr数 map
题目:思路:考虑到如果直接开bool数组可能会爆,所以搞了个map代码:#include <cstdio>#include <iostream>#include <map>using namespace std;const int maxn=511111;int n;map<int,bool> m;bool flag;int main(){ cin>>n; for(int i=1;i*(i+1)/2<原创 2022-05-21 20:04:42 · 175 阅读 · 0 评论 -
进行一个幂的运算 数学杂题
题目:思路:这个题目巧妙的地方在于2的k次-1需要联想到就是每个位上是1的情况,然后看成类似m进制Eg.2的7次=2的一次 * 2的2次*2的4次代码:#include <cstdio>#include <iostream>using namespace std;const int maxn=111111111;const int mod=1e8+7;long long m,k,ans;int main(){ cin>>m>>原创 2022-05-21 19:35:14 · 224 阅读 · 0 评论 -
购买数字 字符串
题目:思路:总的思路是一个比较巧妙的方法,把前导零去掉后搞成两个int数组,以前面一部分来对称构造前导零,如果构造出来的这个数小于真正的那个数的话就刚好是最大的那个回文数。如果比真正的那个数大的话,从中间开始对应搞回文数。注意点:1.1000,100,10这种情况需要另外讨论代码:#include <cstdio>#include <iostream>#include <cstring>using namespace std;const int m原创 2022-05-18 13:24:12 · 91 阅读 · 0 评论 -
赌石 dp
题目:思路:一开始直接朝着概率论的方向去了,万万没想到是道dp基本就是把这道题换了个题面考虑状态转移方程dp[i][j]表示剩下i个蓝球和j个红球的时候,最后剩下两个相同的球的概率dp[i][j]=dp[i-1][j]*0.5+dp[i][j-1]*0.5如果某一种球的数量=0且另一种的球的数量大于等于2,那么dp[i][0]=0#include <iostream> #include <cstdio> #include <cstring>原创 2022-05-02 18:59:28 · 264 阅读 · 1 评论 -
矩形相交 几何问题
题目:思路:一开始想着纯分类讨论,讨论x3的位置在哪(以x1,x2作为分隔点)然后越讨论越混乱,然后看了看别人的做法,发现类比圆,用类似圆心的方法去考虑很巧妙。然后只需要特判一下部分情况。Tips:需要把这里的矩形看成空心矩形,只有在两个矩形不完全重合并且有大于一个交点才视为相交AC代码:#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>u原创 2022-05-02 11:31:16 · 256 阅读 · 0 评论 -
区间修改 差分
题目:思路:可以参考铺设道路两道题的区别在于不仅可以往上加,也可以往下减,如果某一段+1/-1,那么相应的差分数组中就会有一组数+1、-1,但是计算的时候为了可以每次都配对成功,a[1]-a[0]和a[n+1]-a[n]也需要加上,但是计算的时候不需要管,只要d[2]-d[n]最终都变为0了就可以AC代码:#include <cstdio>#include <iostream>using namespace std;const int maxn=111111;i原创 2022-05-02 10:54:54 · 202 阅读 · 0 评论