
模板总结
wanderist.
……
展开
-
有关高精阶乘的一点思考
起因//从大佬那抄的#include<cstdio>#include<algorithm>#include<vector>using std::vector;using std::swap;typedef long long ll;const int N=1e6+10;const ll P=998244353;const ll G=3;ll read(){ ll a=0;int op=1;char ch=getchar(); whil原创 2021-08-23 21:45:00 · 107 阅读 · 0 评论 -
有关压位高精
压位高精在高精度运算中加入了压位思想。详情请看代码(以高精加法为例)#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#define p 8 //要压的数#define carry 100000000 //用于进位 using namespace std;const int N=100010;char s1[N],s2[N];int a[原创 2021-08-23 21:41:42 · 209 阅读 · 0 评论 -
最小生成树
#include<bits/stdc++.h>using namespace std;#define re register#define il inlineil int read(){ re int x=0,f=1;char c=getchar(); while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();} while(c>='0'&&c<='9') x=(x<<3)原创 2021-08-09 18:09:11 · 93 阅读 · 0 评论 -
有关幻方.
一道水题#include<cstdio>using namespace std;int n,a[40][40],x,y;int main(){ scanf("%d",&n); x=1,y=(n+1)/2; for(int i=1;i<=n*n;i++){ a[x][y]=i; if(!a[(x-2+n)%n+1][y%n+1]) x=(x-2+n)%n+1,y=y%n+1; else x=x%n+1;//数学运算 } for(int i=1;i<原创 2021-08-09 15:54:49 · 85 阅读 · 0 评论 -
关于读入不定数量的数据&&其他STL(主要是读入读出技巧)
1.while (scanf("%d",&input)!=EOF){2.while((cin>>m)!=0)原创 2021-08-08 14:02:24 · 157 阅读 · 0 评论 -
一些字符串输出题
luoguP5461赦免战俘#include<bits/stdc++.h>using namespace std;int n;int main(){ scanf("%d",&n); for(int i=0;i<(1<<n);i++){ for(int j=0;j<(1<<n);j++){ printf("%d ",(i|j)!=((1<<n)-1)?0:1);} printf("\n");} return 0;}原创 2021-08-03 15:43:07 · 146 阅读 · 0 评论 -
noip常用技巧之快读
void write(int x){ if (x<0){ putchar('-'); x=-x; } if (x>9) write(x/10); putchar(x%10+'0');}int read(){ int x=0,f=1; char c=getchar(); while (c<'0'||c>'9'){ if (c=='-') f=-1; c=getchar(); } while (c>='0'&&c<='.原创 2021-08-02 16:01:41 · 297 阅读 · 0 评论 -
求逆元的3种方法
//扩展欧几里得求逆元 O(log n)void Exgcd(ll a, ll b, ll &x, ll &y) { if (!b) x = 1, y = 0; else Exgcd(b, a % b, y, x), y -= a / b * x;}//快速幂求逆元 O (log n)ll fpm(ll x, ll power, ll mod) { x %= mod; ll ans = 1; for (; power; power >&g原创 2021-02-27 17:46:59 · 162 阅读 · 0 评论 -
2021-01-16
void qsort (int l,int r){ int mid=a[(l+r)/2],i=l,j=r; do { while (a[i]<mid) i++; while(a[j]>mid) j--; if(i<=j){ swap(a[i],a[j]);i++,j--;} }while (i<=j); if (l<j) qsort(l,j); if (i<r ) qsort(i,r);}原创 2021-01-16 14:38:36 · 98 阅读 · 0 评论 -
树状数组
树状数组可以在O(logn)的时间复杂度内求出前缀和||插入一个数树状数组的三种基本模板区间查询+单点修改 将a[i]最为树状数组中的每个元素题目链接#include<iostream>#include<cstdio>using namespace std;int n,m;const int N=1000010;int tr[N];int lowbit(int x){ return x&-x;}void add(int x,int v原创 2020-08-30 17:03:09 · 93 阅读 · 0 评论