随笔分类 -  ACM

摘要:#include <iostream> #include <cstring> #include <vector> using namespace std; const int MAX = 6; struct Tree{ double L, R; //树的左边和右边的长度 Tree():L(0), R 阅读全文
posted @ 2021-10-11 19:13 旅玖旅玖 阅读(40) 评论(0) 推荐(0)
摘要:1. 四平方和定理 任何一个自然数都能由四个平方和组成 2. a²-(a+1)²-(a+2)²+(a+3)²=4; (a−1)³+(a+1)³+(−a)³+(−a)³=6a; 3 a*b的后导0个数 =a的后导0个数+b的后导0个数 1. zuhe[i][j]=zuhe[i-1][j]+zuhe[i 阅读全文
posted @ 2021-10-07 21:27 旅玖旅玖 阅读(77) 评论(0) 推荐(0)
摘要:1. 约瑟夫数论问题 uva1363 我们发现 k/i的整数部分为p 如果k/(i+1)也为p 则有kmod(i+1)=k-(i+1)/p=k-i*p-p=kmodi-p 则为一个等差数列 然后从尾项倒着查. 阅读全文
posted @ 2021-09-29 22:48 旅玖旅玖 阅读(32) 评论(0) 推荐(0)
摘要:https://codeforces.com/group/uVAsoW2Jkj/contest/336856/problem/D 给你一个数组A 让你随便加减数组B任一数 问能否把A全相等 首先 一整个数组可以凑出一个数x=k1*b1+.... 即 x=k*gcd(b1....) 那么如何让A全相等 阅读全文
posted @ 2021-09-16 19:49 旅玖旅玖 阅读(36) 评论(0) 推荐(0)
摘要:题意 求小于等于n的数对(a,b) 要求gcd(a,b)==a xor b n<=3e7 如果单纯枚举 n^2 一定是T掉的 显然要优化一层循环 又因为 a xor b=c 则a xor c=b 那么把gcd(a,b)看作c 寻找b即可 而c是a的约数 为根号n 则循环化简到nlogn 阅读全文
posted @ 2021-09-13 21:14 旅玖旅玖 阅读(35) 评论(0) 推荐(0)
摘要:for(int i=1;i<=n;i++) 初始化 for(int i=0;i<n;i++) { int k=lower_bound(g+1,g+n+1,A[i])-g; d[i]=k; g[k]=A[i]; } 假设我们已经算出来了d(以i为结尾的最长上升子序列) d[a]=d[b] 那么 如果a 阅读全文
posted @ 2021-09-11 11:08 旅玖旅玖 阅读(27) 评论(0) 推荐(0)
摘要:这里我们先将其看作2维问题 给定一个长方形 让你求他的最大子矩阵, 我们枚举长方形的y1与y2 并将它压缩成1维 而1维的最大子区间我们非常好考虑 那3维同理 我们给定一个长方体 枚举她的z1与z2 压缩成一个二维矩阵 然后我们再枚举y1 y2 继续压缩 既可求得该长方体 阅读全文
posted @ 2021-09-09 20:56 旅玖旅玖 阅读(53) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> #include<iostream> using namespace std; typedef long long ll; int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; ll mod=19260817; char 阅读全文
posted @ 2021-09-07 23:23 旅玖旅玖 阅读(36) 评论(0) 推荐(0)
摘要:vector<vector<int>> d = { {2, 1, 5, 0, 4, 3}, {2, 0, 1, 4, 5, 3}, {2, 4, 0, 5, 1, 3}, {2, 5, 4, 1, 0, 3}, {4, 2, 5, 0, 3, 1}, {5 阅读全文
posted @ 2021-09-06 19:47 旅玖旅玖 阅读(264) 评论(0) 推荐(1)
摘要:#include<bits/stdc++.h> using namespace std; using ll=long long; const int maxn=(1<<20)+5; const double PI=acos(-1); struct Complex { double x,y; Comp 阅读全文
posted @ 2021-09-03 09:32 旅玖旅玖 阅读(58) 评论(0) 推荐(0)
摘要:int next[100]; void getnext() { string a//(查找的串) next[0]=-1; int j=0,k=-1; for(j=0;j<a.size();j++) { if(k 1||a[j]==a[k]) { next[++j]=++k; } else { k=n 阅读全文
posted @ 2021-09-02 15:23 旅玖旅玖 阅读(46) 评论(0) 推荐(0)
摘要:例1 链接:https://ac.nowcoder.com/acm/contest/9985/D来源:牛客网叶妹妹很喜欢玩石头,于是这天泽鸽鸽给她出了一道石子游戏,规则是这样的:有n堆石子排成一行,其中第i堆石子有ai​个, 叶妹妹可以选择做无数次这种操作:每次操作把连续相邻的k个石子堆中的每堆石子 阅读全文
posted @ 2021-08-31 20:29 旅玖旅玖 阅读(53) 评论(0) 推荐(0)
摘要:double a = 1; double b = 1; complex<double> cm(a, b); 且运算符已经重载过了 阅读全文
posted @ 2021-08-30 22:47 旅玖旅玖 阅读(55) 评论(0) 推荐(0)
摘要:链接:https://ac.nowcoder.com/acm/problem/16561来源:牛客网恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排成一排,国王站在队伍的最前面。排好 阅读全文
posted @ 2021-08-30 22:16 旅玖旅玖 阅读(34) 评论(0) 推荐(0)
摘要:组合数求和问题 考虑二项式定理 并带入xy 例1 本质不同的序列指的是含的数字不一样 1 1 2 3 与 1 3 2 1 本质是一样的 其本质就成为了 你有x个数 可以重复 放入m-2个位置中 我们转换思想 变成放+1的挡板 比如中间放2 2 2 ^ 3 ^^ 5 就是放了加1的挡板 但是与普通问题 阅读全文
posted @ 2021-08-30 17:47 旅玖旅玖 阅读(38) 评论(0) 推荐(0)
摘要:void write(__int128 a) { if(a<0) { cout<<'-'; a=-a; } if(a>9) write(a/10); cout<<(int)(a%10); } __int128 read() { __int128 temp=0; string a; getline(c 阅读全文
posted @ 2021-08-25 22:54 旅玖旅玖 阅读(81) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> #include<iostream> using namespace std; typedef long long ll; const double pi = acos(-1.0); const double inf = 1e100; const do 阅读全文
posted @ 2021-08-25 14:02 旅玖旅玖 阅读(41) 评论(0) 推荐(0)
摘要:5.1.1 三角形面积 利用两条边叉积除以二取绝对值 海伦公式 S=p(p−a)(p−b)(p−c)−−−−−−−−−−−−−−−−−√,p=(a+b+c)2S=p(p−a)(p−b)(p−c),p=(a+b+c)2 S=absinC2S=absinC2 5.1.2 三角形四心 5.1.2.1 外心 阅读全文
posted @ 2021-08-25 13:39 旅玖旅玖 阅读(120) 评论(0) 推荐(0)