- 博客(13)
- 收藏
- 关注
原创 读入输出挂
inline int read(){ char ch = getchar(); int x = 0, f = 1; while(ch < '0' || ch > '9') {if(ch == '-') f = -1; ch = getchar();} while('0' <= ch && ch <= '9') {x = x * 1...
2018-07-29 12:26:53
182
原创 2018多校第一场
1001:Maximum Multiple思路:根据题意,设,易推导出来,这样的取值范围就只有有限的3,3,3和2,4,4和2,3,6这三种取法,并且2,3,6是不如前两种取法,所以答案就是。代码:#include<bits/stdc++.h>using namespace std;int main(){ int t;scanf("%d",&t);...
2018-07-27 12:53:07
304
转载 平衡树模板-Splay
转载链接:https://blog.csdn.net/clove_unique/article/details/50630280首先声明:万分感谢gty大哥的帮助!这年头能找到简单易懂的数组版平衡树模板只能靠学长了!变量声明:f[i]表示i的父结点,ch[i][0]表示i的左儿子,ch[i][1]表示i的右儿子,key[i]表示i的关键字(即结点i代表的那个数字),...
2018-07-15 15:57:12
174
原创 あなたの蛙が帰っています 逆元+卡特兰数
逆元快速幂解法:inv(a) = a^(p-2) (mod p);#include<bits/stdc++.h>using namespace std;const int maxn=1e5+10;typedef long long LL;LL h[maxn],inv[maxn];LL mod=998244353;//求逆元void ex_gcd(LL a, LL b, ...
2018-03-19 16:44:42
352
原创 HDU4722_数位DP
#include<bits/stdc++.h>using namespace std;int a[22];long long dp[22][22];long long dfs(int len,int sum,bool shangxian){ if(len<=0)return sum==0; if(!shangxian && dp[len...
2018-03-17 18:39:57
144
原创 Codeforces 948D Perfect Security
01字典树#include<bits/stdc++.h>using namespace std;const int maxn=3e5+10;#define ll long longll a[maxn],b[maxn],sn,ans[maxn],siz,cnt[maxn*40][2];ll sum[maxn*40];inline void insert(ll x){ ...
2018-03-14 20:41:07
354
原创 BZOJ1026 数位DP
#include<bits/stdc++.h>using namespace std;int a[20];long long dp[20][20];long long dfs(int len,int last,bool shangxian){ int p; if(len<=0)return 1; if(!shangxian &&...
2018-03-14 20:05:57
120
原创 HDU6058-Kanade's sum
该题的标程是用链表实现的。思路:首先要确定一点,要求每个点的贡献,也就是说,该点成为第k大的区间个数。我们从小往大开始扫每个数的前面k个和后面k个(很明显都是比当前这个数大的),然后,当一个数是第k大的时候,前面有x个比它大的数,那么后面就有k-x-1个比它大的数。(换个方向想,就是将这若干数排序后,第k小)#includeusing namespace std;typedef long
2017-08-02 13:22:52
226
原创 快速幂取模
const int mod=1e9+7;long long modexp(long long a, long long b, int mod){ long long res=1; while(b>0) { a=a%mod;//(有时候n的值太大了会超出long long的储存,所以要先取余) if(b&1)//&位运算:判断二进制最后一位
2017-08-02 13:09:16
214
转载 深度理解链式前向星
转载自:http://blog.csdn.net/acdreamers/article/details/16902023相当不错的介绍,赞一个。我们首先来看一下什么是前向星.前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前
2017-07-16 13:02:56
1684
原创 Codeforces828 C. String Reconstruction
这条题目据说是条思维题。。。一开始直接暴力strncpy结果tle了。算了,总结一下我看过的各种解法,正是长见识了。第一种是官方给出的题解方法:就是一开始sort,然后按顺序去放置字符串,一开始愣是没看懂啥意思,看了代码才理解。以下代码链接,看起来感觉存数据的时候贼暴力#include using namespace std;const int maxn = 1e6+100
2017-07-13 09:34:30
352
原创 HDU3746--KMP+最小循环节
最小循环节求法:定理:假设S的长度为len,则S存在最小循环节,循环节的长度L为len-next[len],子串为S[0…len-next[len]-1]。(1)如果len可以被len - next[len]整除,则表明字符串S可以完全由循环节循环组成,循环周期T=len/L。(2)如果不能,说明还需要再添加几个字母才能补全。需要补的个数是循环个数L-len%L=L-(len-L)
2017-06-08 20:53:07
281
原创 HDU2087--KMP模板题
中文题,不解释。注意:每次匹配成功要把j移动到0的位置。第一次做KMP的题目,看了半天依旧有点模糊。。。以后多练练吧代码:#include#includeusing namespace std;int next[100009],cnt,n,m;char a[100009],b[100009];void getnext(){ int i=0,j=-1;
2017-06-08 20:20:58
188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人