- 博客(44)
- 资源 (1)
- 收藏
- 关注
原创 BZOJ 4659: Lcm
给出A,B,考虑所有满足l<=a<=A,l<=b<=B,且不存在n>1使得n^2同时整除a和b的有序数对(a,b),求其lcm(a,b)之和。答案模2^30。ans =sigma(a,b,|mu[gcd(a,b)]| * a * b / gcd(a,b))= sigma(d , |mu[d]| * d * sigma(a,b,[gcd(a,b)==1] * a...
2018-11-29 22:22:25 169
原创 BZOJ 2693 jzptab
#include&lt;bits/stdc++.h&gt;#define mod 100000009#define maxn 10000000using namespace std;/*sigma(i,j,i*j/gcd(i,j))=sigma(d,i,j,[gcd(i,j) == 1] * d * i * j)=sigma(d,d * sigma(i,j,[gcd(i,j)==1]...
2018-11-28 22:34:37 145
原创 bzoj3701 Olympic Games
Codeforces要举办一场计算机比赛,主办方将所有人安排在一个nm的网格图的点上(也就是总共有(n+1)(m+1)个人参加了本次比赛),然后主办方给每个人都配备了一台计算机(也就是说n*m的网格图的每个格点上都有一台计算机,计算机的体积忽略不计)。但是主办方由于没钱或者是其它原因,不能给计算机配备挡板(主办方:能准备这么多台计算机就不错了),因此一些人就可以直接看到别人的计算机屏幕(当然肯...
2018-11-28 22:16:02 206
原创 莫比乌斯反演
公式:其中 为莫比乌斯函数,定义如下:(1)若 则(2)若 , 为互异素数,那么(3)其它情况下这个定义其实就是一个容斥原理给每个F(n)加上容斥系数然后容斥。容斥系数满足:证明:①当 时显然②当 时,将 分解可以得到在 的所有因子中, 值不为零的只有所有质因子次数都为1...
2018-11-24 12:13:51 109
原创 伯努利数与自然数幂和
自然数幂和的伯努利数做法是对于指数型母函数的精彩应用。普通的母函数是因为对于等比数列的研究可以迁移到幂级数上,从而拓展生成函数的运算而简化运算,一般化数列的运算。指数型母函数是将泰勒展开的研究迁移到幂/阶乘级数(???)而规定生成函数的运算,从而达到描述数列运算的目的。这个证明很简洁...
2018-11-22 22:37:30 1331
原创 斯特林数
第一类斯特林数:S(n,m)表示n个元素放入m个圆排列的方案数。S(n,m) = S(n-1,m-1) + (n-1) * S(n-1,m).从递推式可以发现:这个递推式还可以看作进行n次操作,其中第i次操作有i−1种方案不取物品,有1种方案取一个新物品,最后取得k个物品的方案数。x * (x+1) * (x+2) … * (x+n-1)的 x^k的系数就是 S(n,k).可以用分治...
2018-11-21 17:37:45 224
原创 NOIP2018 游记
思来想去,还是游记比较适合吧。Day1:T1 :学习**F贪心就是了,数组都不用开。#include<cstdio>#include<cstring>#include<cctype>#include<algorithm>#define LL long longusing namespace std;int n;LL ans ...
2018-11-11 14:43:44 976
原创 区间修改区间查询树状数组
对于一个数组b,用树状数组,我们可以单点修改区间查询它的前缀和数组c。对于一个数组b,用树状数组,我们可以通过维护它的差分数组a来区间修改单点查询。现在有b的前缀和数组c。我们如果要区间修改区间查询。那么就探寻a和c的关系就行了。发现每个a[i]会对每个i&lt;=j的b[j]转移一次,每个b[i]会对每个i&lt;=j的c[j]转移一次。然后会发现a[i]通过b[k] (i&lt;...
2018-11-09 08:06:27 409
转载 C++中template的用法(转载)
**类模板与函数模板的定义和使用类似。有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int{public :Compare(int a,int b){x=a;y=b;}int max( ){return (x&gt;y)?x:y;}int min( ){return (x&lt;y)?x:y;}pr...
2018-11-09 08:06:07 9330
原创 「NOIP2016」天天爱跑步
小 C 同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。《天天爱跑步》是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。这个游戏的地图可以看作一棵包含 spanclass="katex">n n n 个结点和 n−1 n - 1 n−1 条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达。树上结点编号为从 1 1 1 到 n n n 的连续正整数。现在有 ...
2018-11-07 11:34:22 25758
原创 NOIP2017列队
Sylvia 是一个热爱学习的女♂孩子。前段时间,Sylvia 参加了学校的军训。众所周知,军训的时候需要站方阵。Sylvia 所在的方阵中有名学生,方阵的行数为 n,列数为 m。为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中 的学生从 1 到 编上了号码(参见后面的样例)。即:初始时,第 i行第 j列 的学生的编号是。然而在练习方阵的时候,经常会有学生因为各种各样...
2018-11-07 09:17:38 634 2
原创 #6039. 「雅礼集训 2017 Day5」珠宝
题目描述Miranda 准备去市里最有名的珠宝展览会,展览会有可以购买珠宝,但可惜的是只能现金支付,Miranda 十分纠结究竟要带多少的现金,假如现金带多了,就会比较危险,假如带少了,看到想买的右买不到。展览中总共有 N 种珠宝,每种珠宝都只有一个,对于第 i 种珠宝,它的售价为 Ci 万元,对 Miranda 的吸引力为 Vi 。Miranda 总共可以从银行中取出 K万元,现在她想...
2018-11-06 19:45:39 915
原创 决策单调性优化
决策单调性是对于一些dp式子,比如说ans[i] = max(a[j] + sqrt(i-j)) (j < i)如果在一个i满足a[j] + sqrt(i-j) < a[k] + sqrt(i - k)且j<k,那么可以发现在i变大的时候j也一定会比k劣,没有优于k的可能。但是对于这个决策单调性的利用方式却很多。1.四边形不等式优化二维dp,利用dp[i][j-1]的决策点...
2018-11-06 17:38:10 4244
原创 平衡树Splay
文艺平衡树#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctype&gt;#include&lt;algorithm&gt;#define maxn 100005using namespace std;int n,m;int ch[maxn][2],fa[maxn],siz[m
2018-11-05 08:57:11 157
原创 lower_bound、upper_bound
#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;int a[20]={1,2,3,4,5,6,7};int main(){ printf("%d %d\n",*lower_bound(a,a+7,3),*uppe
2018-11-05 08:57:05 82
原创 三分查找
洛谷P3382 【模板】三分法#include&lt;cstdio&gt;#define db doubleusing namespace std;const db eps=1e-6;int n;db a[15],L,R,mid1,mid2,k;db f(db x){ db S=0; for(int i=n;i&gt;=0;i--) S=S*x+a[i]; re...
2018-11-05 08:56:50 618
原创 二分查找
#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctype&gt;#include&lt;algorithm&gt;#define eps 1e-6using namespace std;int n;double l,r,a[20],b[20]; double cal(
2018-11-05 08:56:47 117
原创 桶排序
for(i=0;i&lt;m;i++) c[i] = 0; for(i=0;i&lt;n;i++) c[x[i] = s[i]]++; for(i=1;i&lt;m;i++) c[i] += c[i-1]; for(i=n-1;i&gt;=0;i--) sa[--c[x[i]]] = i;s代表待排数组,sa代表排序后的排名数组m为值域...
2018-11-05 08:56:27 86
原创 求逆序对
#include&lt;cstdio&gt;int a[500001],New[500001],n;long long ans;int getint(){ int ans=0,flag=0; char c; while(1){ c=getchar(); if(c&lt;='9'&amp;&amp;c&gt;='0')
2018-11-05 08:55:48 98
原创 求叉积
求任意多边形的面积#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cctype&gt;#include&lt;cmath&gt;#include&lt;algorithm&gt;#define maxn 105using namespace std;
2018-11-05 08:55:29 526
原创 SET的完整用法
SET的第一行模板源码是这样的: template&amp;lt;typename _Key, typename _Compare = std::less&amp;lt;_Key&amp;gt;, typename _Alloc = std::allocator&amp;lt;_Key&amp;gt; &amp;gt;根据template和English的有关知识,我们可以知道set的定义
2018-11-05 08:55:14 2159 1
原创 MAP的完整用法
1.什么也不知道的像数组一样用。map&lt;_Key,_Tp,cmp&gt;mpmp[_Key]返回_Tp的地址。2.用insert(pair&lt;,&gt;),你会发现map就是一个set&lt;pair&lt;int,int&gt; &gt;重载了[]符号而已。3.注意count()返回的是0或14.multimap更倾向于描述一个A到B的映射,但是A中
2018-11-05 08:55:10 128
原创 优先队列的完整用法
template&lt;typename _Tp, typename _Sequence = vector&lt;_Tp&gt;, typename _Compare = less&lt;typename _Sequence::value_type&gt; &gt;定义方式就是这样。priority_queue&lt;type,vector,cmp&gt
2018-11-05 08:55:05 182
原创 读入优化
namespace IO{ #define BUF_SIZE 100000 #define OUT_SIZE 100000 #define ll long long //fread->read bool IOerror=0; inline char nc(){ static char buf[BUF_SIZE]...
2018-11-04 17:07:32 118
转载 O(N^2)求最长上升公共子序列
#include<iostream>#include<cstdio>#define MAXN 4000using namespace std; int main(){ int len; while(~scanf("%d",&len)) { int arr[MAXN]; int length[MAXN]; for(int i=0;i&...
2018-11-04 17:05:41 106
原创 O(NlogN)求最长上升子序列
#include<cstdio>#include<algorithm>#include<cstring>#define maxn 200005using namespace std; int n,a[maxn],sta[maxn],tp,cnt; int main(){ scanf("%d",&n); for(int i=...
2018-11-04 17:03:31 315
原创 树上背包写法(选课)
#include<cstdio>#include<algorithm>#include<cstring>#define maxn 305using namespace std;int n,m,Fa[maxn],Son[maxn][maxn],Cnt[maxn],Sc[maxn],f[maxn][maxn];void dfs(int now,int...
2018-11-04 17:02:22 280
原创 DP的斜率优化
HDU - 3507#include<cstdio>#include<cstring>#include<cctype>#include<algorithm>#define maxn 1000005using namespace std;int dp[maxn];int sta[maxn];int h=0,t=0;int n,m...
2018-11-04 17:01:28 122
原创 DP的平行四边形优化
Luogu P4767 [IOI2000]邮局#include <bits/stdc++.h>using namespace std;int n,m,a[3005],mk[3005][3005];long long dp[305][3005],w[3005][3005];int main (){ scanf("%d%d",&n,&m); fo...
2018-11-04 16:58:48 514
原创 A*
Luogu P2483 【模板】k短路([SDOI2010]魔法猪学院)#include <cstdio>#include <cmath>#include <cstring>#include <iostream>#include <queue>#include <algorithm>using namespace...
2018-11-04 16:56:45 121
原创 ID搜索
埃及分数#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<set>#include<cmath>using namespace std;int a,b,k,depth;vector<int>t
2018-11-04 16:51:58 986
原创 二维背包+列出物品选择
#include<cstdio>#include<algorithm>using namespace std;int n,a[1001],f[1001][10001],s,v[1001],Max;void print(int sum,int x){ if(x==0||sum==0) return; if(f[sum-1][x]==f[sum][x]) print...
2018-11-04 16:49:54 317
原创 NOI.AC 运气大战
运气大战你的班上n个同学要去参加一项集体比赛。每个人有实力值和运气值。每个人的实力值是确定的,但是运气值是飘忽不定的。一个人的发挥是他的实力值wi和运气值的乘积,即wi⋅rci。班级的发挥是所有人发挥之和。每个人有一个初始运气值ri,但是每次比赛的时候,每个人的运气值是所有人运气值的一个排列,并且要满足,排列之后ii的运气值不是ri。即满足,ii的运气值是rci,{ci}是1−n1−n的排列,且...
2018-11-03 16:52:09 441 2
原创 哈希和双哈希
哈希自然溢出#include<cstdio>#include<cstring>#include<algorithm>#include<set>#define LL long long#define maxn 10005#define S 131using namespace std;int n;char s[maxn];set...
2018-11-03 08:21:01 726
原创 线段树
维护序列seq#include<cstdio> #include<cctype> #include<algorithm> #define maxn 100005 #define ld now<<1 #define rd ld|1 using namespace std; int l,r,n,br,bl,q,now,p,a,c; lo...
2018-11-02 23:26:48 70
原创 树状数组
来个复杂点的,二维区间修改区间查询BIT#include<cstdio>#include<cctype>#define maxn 2050#define lowbit(a) a&(-a)int n,m,e,f,g,h,delta;char alpha;void get(int &num){ num=0; char ch;bool flag...
2018-11-02 23:25:36 60
原创 堆排序
#include<bits/stdc++.h>using namespace std; const int MAXN = 100000; int Get() { int res = 0; char c; while((c = getchar()) != EOF && !isdigit(c)); if(c == EOF) ...
2018-11-02 23:23:41 72
原创 拓扑排序
洛谷P1113杂物#include<cstdio>#include<algorithm>#include<queue>#define maxn 100005#define maxm 1000005using namespace std;int n,m;int in[maxn],dis[maxn],tim[maxn];int info[maxn...
2018-11-02 23:18:56 69
原创 欧拉回路
骑马修栅栏 Riding the Fences#include<bits/stdc++.h>#define maxn 1100using namespace std;int n,usd[maxn],in[maxn];bool vis[maxn][maxn];multiset<int>G[maxn];stack<int>sta;void dfs...
2018-11-02 22:32:12 456
原创 k短路算法
无重点#include&lt;bits/stdc++.h&gt;#define maxn 505using namespace std;int info[maxn],Prev[20005],to[20005],cst[20005],cnt_e;inline void Node(int u,int v,int ct){ Prev[++cnt_e]=info[u],info[u]=cnt_...
2018-11-02 17:41:37 405
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人