————其它算法
mengbi_er
一个蒟蒻JLoier
展开
-
Codeforces Round #420 (Div. 2) C. Okabe and Boxes
题目大意两种操作: 1.向栈中加入x元素。 2.删除栈顶元素。 需要修改几次顺序能使序列单调递增。题解模拟栈。 add操作向栈中加入元素。 remove操作若栈顶元素等于remove次数,弹出栈顶。否则把栈清空,答案加1. (博主实在太弱啦,竟然想用单调栈和最长上升子序列)#include<iostream>#include<cstdio>#include<cstring>#inc原创 2017-06-26 13:14:15 · 295 阅读 · 0 评论 -
BZOJ2659: [Beijing wc2012]算不出的算式
式子转化成求(1,1)-((p-1)/2,(q-1)/2)矩阵中有多少个整数点…#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0,x=1; while(ch<'0'||原创 2017-12-03 15:05:58 · 273 阅读 · 0 评论 -
bzoj3714: [PA2014]Kuglarz
这题真是妙啊,只要知道所有所有[1,i]的和就能确定最后的值,当我们知道sum[i-1],询问一次[i,j],就知道了sum[j],这样我们可以用最小生成树来解决问题。对于[i,j],连一条从i-1到j的边。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;in原创 2017-11-18 17:05:37 · 206 阅读 · 0 评论 -
Codeforces Round #440 (Div. 1) B. Something with XOR Query
题目大意给一个排列p和每个数对应的位置b,你可以询问2n次,每次两个数i,j,返回p[i]^b[j],求最后如果询问n^2次都不能确定的排列个数。题解询问所有0,i和i,0,之后就能得知所有数的两两异或(a[i][j]=a[i][0] ^ a[0][j] ^a[0][0]),然后就枚举第一个数是什么,暴力计算即可。#include<iostream>#include<cstdio>#includ原创 2017-10-16 07:49:29 · 480 阅读 · 1 评论 -
bzoj2257: [Jsoi2009]瓶子和燃料
由裴蜀定理,最后结果为所有数最大公因数,所以预处理公因数然后看最大的次数>=k的数。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch原创 2017-09-22 08:43:35 · 301 阅读 · 0 评论 -
bzoj2405: 数字
打表找规律发现22680时出现循环,然后就随便搞搞。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define ll long longll n,m,a[22681];long long read(){ char ch=getchar();l原创 2017-08-31 10:58:10 · 341 阅读 · 1 评论 -
AIM Tech Round 4 (Div. 2) D. Interactive LowerBound
题目大意每个点的next为比它大的下一个数得位置,每次询问位置,告诉你valuei和next,求比x大的最小的数。题解考场上不会搞QAQ,2小时左右yy了个做法,然后疯狂wa on pretest 2,早上读读题才发现要判-1,改了还是wa 3,忽然发现自己输出了位置,gg。#include<iostream>#include<cstdio>#include<cstring>#include<原创 2017-08-25 08:27:58 · 708 阅读 · 0 评论 -
AIM Tech Round 4 (Div. 2) C. Sorting by Subsequences
题目大意每次选一个子序列,对它们进行排序,每个位置只能选1次,问最多选的次数。题解随便划一划就觉得是置换,然后就觉得很有道理,然后猜结论,然后xjb码一码,然后pp,然后ac。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ c原创 2017-08-25 08:23:07 · 448 阅读 · 0 评论 -
bzoj2632: [neerc2011]Gcd guessing game
转学长博客。 传送门#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define N 10010 using namespace std; int n; int p[N],cnt; bool he[N]; void getp() { int i,转载 2017-07-26 09:50:08 · 333 阅读 · 0 评论 -
bzoj4706: B君的多边形
递推式: f[n]=(f[n−1]∗(6n−3)−f[n−2]∗(n−2))/(n+1) f[n]=(f[n-1]*(6n-3)-f[n-2]*(n-2))/(n+1) 预处理逆元即可。#include<iostream>using namespace std;int mod=1000000007;long long f[1000005],inv[1000005];int main()原创 2017-07-24 16:57:06 · 706 阅读 · 0 评论 -
bzoj3444: 最后的晚餐
有两种情况输出0:成环和一个点度数为3以上,对于一条链可以翻转,所以答案2^链数*连通块个数阶乘。 写的太丑了QAQ.#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0;原创 2017-07-16 14:34:27 · 276 阅读 · 0 评论 -
bzoj3016: [Usaco2012 Nov]Clumsy Cows
右括号匹配不到答案加一,左括号多2个答案加一。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int main(){ int n,now=0,ans=0;char s[100005]; scanf("%s",s+1); n=strle原创 2017-07-05 19:24:31 · 261 阅读 · 0 评论 -
bzoj2717: [Violet 4]迷路的兔子
构造,太玄学了。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int main(){ int n; cin>>n; printf("%d\n",n*(n-1)/2); for(int i=1;i<=(n>>1);i++)原创 2017-07-05 19:21:50 · 450 阅读 · 0 评论 -
bzoj1968: [Ahoi2005]COMMON 约数研究
计算每个数对答案的贡献。#include<iostream>using namespace std;int main(){ int n; cin>>n; int ans=0; for(int i=1;i<=n;i++) { ans+=n/i; } cout<<ans;}原创 2017-06-26 14:42:58 · 211 阅读 · 0 评论 -
1697: [Usaco2007 Feb]Cow Sorting牛排序
这道题置换群裸题,对于一个置换群,交换所需代价为sum+min((tot-2)群里最小值,(tot+1)群里最小值+最小数);#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;long long b[1000005],ans,c[1000005],w[10000原创 2017-06-15 22:08:53 · 391 阅读 · 0 评论 -
bzoj1119: [POI2009]SLO
这题跟bzoj1697一样的啊,可以水双倍经验啦。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;long long b[1000005],ans,c[1000005],w[1000005];bool vis[1000005];struct data{原创 2017-06-15 22:12:41 · 278 阅读 · 0 评论 -
BWT算法 && BZOJ2408:混乱的置换
BWT简介BWT算法可以将原文本转换成相似文本,并且可以用其他技术进行压缩。编码方式(1) 将文本串后加一个文本中不会出现的字符‘#’。(定义#小于文本串中任一字符) (2) 将文本串不断右移,得到新文本串。 (3) 将所有得到的文本串从小到大排序。 (4) 记F为排序后每个字符串第一个字符,L为每个字符串最后一个字符。易知原文本串中字符在F和L中分别出现且仅出现一次。 (5) L列即为处理原创 2017-06-18 17:06:17 · 1101 阅读 · 0 评论