自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 51nod 40 选择子序列 单调栈+DP

题意:长度为n的序列a.每个数都不相同. 找到一个序列b 0 A[b[1]]> ...A[b[k]]. 并且:A[j]na[b[i]]要大于(a[b[i]]~a[b[i-1]])之间的数. 选下一个数,可以在上一个数的左右两边 而且不知道要选哪一个 不好处理.先保存每个数的下标 然后将序列按照权值从大到小排序.设dp[i]为以排序后下标i结尾 选出最

2017-12-30 20:02:54 215

原创 51nod 40 Bash游戏 博弈,打表

Bash 游戏4题.题意:有一堆石子共有N个。A B两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。n,k假如N%(k+1)!=0 先手必胜 因为每次可以把可以把余数变为0 下因为最多取k个,下一个人无论怎么操作余数都不会为0,先手每次取完都为r==0的状态.经过若干次操作后.石子被先手取完,先手必胜.#include using name

2017-12-28 19:30:33 281

原创 51nod 40 第K大区间 二分+尺取

题意:定义一个区间的价值为:该区间众数的出现次数 (该区间相同的数最多出现多少次.)给出序列a,将所有区间价值排序后,问第k大的数值为多少?n设cnt[x] 价值为x的区间有多少个? x[1...n] . 如何快速算出cnt[x]???? 想了一会儿 只会暴力算.qwq...设f[x]:价值因为答案是在[1,n]范围内的,令tot=(1+n)*n/2,k=t

2017-12-26 16:14:19 207

原创 51nod 40 序列分解 暴力dfs or 折半+字典树

题意:长度为n的序列a,从a中选出两个长度为n/2的子序列b,c.a中每个元素要么属于b要么属于c.2初始序列b,c都为空 假如a[1]属于序列b. 那么下一个x=a[1]的数可能属于序列c 中间的数肯定都压入序列b中若序列b长度大于n/2,无解. 141 7 10 1 7 4 5 7 1 10 7 4 5 1WAWAWA... 按上面算法来执行则无解 实际上有{1

2017-12-25 13:48:01 204

原创 Atcoder 500 Wide Flip 思维

题意:给出一个只包含01得字符串s,操作:将长度至少为k的区间内的字符反转,01互换.|s|二分最大的k  样例 010 k=2时 无法判定.假如第i位和第i+1位不同 那么i和i+1不能同时翻转 K的上界当i当i>k 翻转[1,i],[1,i-1]  使得第i位改变 其余不变.[n-k+1,k]的字符都相同.(否则K的上界减小).#include u

2017-12-24 13:04:19 299

原创 CF 899E Segments Removal 链表+优先队列

题意:长度为n的序列a,操作:每次移除序列中,元素都相等并且长度最长的一段区间.(若有多个 移除最左边一个).n相同的合并成一个二元组(xi,ci)  xi为数字,ci为xi的出现次数. .整个二元组序列用链表串起来.每次删除链表中c[i]最大的位置, n次,每次查询链表中最大值并且要跳的最大值所在位置 O(n^2) TLE...将链表所有节点压入优先队列中,对于合并时被删

2017-12-23 13:21:27 284

原创 GYM Samara16 A Treasure Island 暴力

题意:n*m的地图,'#'表示障碍, '.'表示land, '?'表示待定. 可以上下左右移动.问是否能将地图上所有的'?'变为'.'或者'#' 使得地图上只有一个联通分量.n,m先把所有的'?'都变为'.' 还是有多少个联通分量时如果有某个个联通分量全部都为'?则把该摧毁该连通分量,直到联通分量个数为1为止.若此时联通分量个数还是>1则无解.现在只有一个联

2017-12-22 11:47:04 213

原创 CS 400 Simple Pahts 割边,路径唯一

题意:n点m条边的无向图,Q次询问,每次询问(x,y) 问x->y的简单路径是否唯一? n,m,Q现在找到一条x-y的路径p. 那么路径p上的边 如果存在有一条边不是割边的话 那么x-y有多条路径 (因为去掉这条边后 x->y仍然有路径).如果路径p上的边都为割边 那么x->y存在唯一一条路径 (假如还有路径 那么代表p上的某条边去掉后 x-y仍然联通,矛盾.)现在只保

2017-12-21 18:17:52 296

原创 Atcoder 500 FT Robot DP

题意:给出操作序列s. 'F'表示朝当前方向前进一格. 'T'表示将当前方向,顺时针或者逆时针旋转90度.起点在(0,0)方向面向x轴正向.问在操作序列s下 能否到达点(x,y)?  |x|,|y|,|s|第odd个T,到下一个T之间的F改变的是y轴的偏移量,dy要么是+F或者-F.第even个T,到下一个T之间的F改变的是x轴的偏移量,dx要么是+F或者-F.求出每段的偏

2017-12-20 19:19:24 264

原创 CF 899D Shovel Sell 思维.

题意:序列1,2....n. 问从中选出两个数(x,y) 要让x+y末尾9的个数最多.问有多少种方案? n先确定对于给定的n 末尾9的个数最多为多少? 假如末尾9的个数最多为x,则有 n+(n-1)+1>=10^x末尾有x个9 那么首位y :y99999. 1=[1..n]中有多少对(a,b)满足 a+b=y.如果y如果y>=n 受到n限制 (a,b)对

2017-12-20 16:22:32 216

原创 CS 400 Path Union 思维+贪心

题意:高度为n的满二叉树,若一个节点u被选择,则u到root的边变成黑色长度为n的序列a, a[i]表示树的第i层最多可以选a[i]个节点.1考虑一颗满二叉树 只选叶子节点的情况.假如只选1个 则任意 选两个 则显然出前一半和后一半中各自任选一个.假如只选4个,则每个1/4为一块各自任选一个.....对每一层都做上面的贪心操作.若选了节点u 则在选u得祖

2017-12-20 11:06:50 222

原创 CF 359C Prime Number 暴力

题意:式子:1/x^a[1] +1/x^a[2]....+1/x^a[n]=s/t. 给出x和序列a. 问gcd(s,t)模1e9+7 ?n题目给的x是素数。。。。。分子底数相同 指数不同.  sum=a[1]+a[2]+..a[n] . f[i]=sum-a[i]用优先队列直接写了个大暴力O(nlogn): 把x^f[1]+x^f[2]+...x^f[n] 一直合并

2017-12-19 18:19:41 306

原创 URAL 1132 Square Root 暴力枚举,二次剩余.

题意:Q次询问,每次给出a,n. n为素数,a和n互质,gcd(a,n)=1.在[1,n-1]得范围内,找到所有满足x*x = a (mod n)的x.Q每次O(N)枚举x,O(QN) TLE.预处理:枚举n,在枚举x,[1,n-1]来更新答案mp[n][(x^x)%n]++  O(n^2 log n) TLE.注意题目的条件 询问中的n都为素数并且n相同的n只进行

2017-12-16 15:29:13 257

原创 BZOJ 5108 可做题 贪心,分段,异或拆位

BZOJ 5108题意:长度为n的序列a,知道其中m个位置的a[i]值.定义b[i]为序列a的前缀异或和.n'.'为未知未知,序列为: ....X....XX...X....若两个X之间有连续的X.....X 则显然只需要考虑第一个和最后一个. 第一个.把前面段的异或值变为0,,最后一个.待定.其他的,取0显然最优 (假如其他非0->变为0,最后一个取其他的异或值,答案

2017-12-15 23:21:20 262

原创 CF 294C. Shaass and Lights 组合数学

题意:长度为n得序列a,初始a[i]为0或者1. 操作:如果一个a[i]为0 并且与a[i]相邻得至少有一个为1.则此时可以将a[i]变为1.n可以把序列分成若干个连续0:例如 ..10001.. 中间如果有x个0 则填成1的方案有2^(x-1)种.(x个位置 每个位置填L或者R 最后一个位置固定).现在连续0的个数分别为b[1],b[2]...b[k] 0的个数总共为m.

2017-12-14 22:13:41 387

原创 CF 903 E Swapping Characters 暴力

题意:k个字符串 每个字符串长度都为n.操作:交换某个字符串中任意两个位置的字符.k首先k个串中,任意两个串其字符出现频率都要相同,否则无解.先算出初始第一个串和其他串得汉明距离暴力枚举第1个串交换哪个位置.算出新的汉明距离 如果新得汉明距离==0或者2(字符频率相同 可以交换使得距离为0),.O(n^2*k).#include using namespace s

2017-12-13 20:24:27 468

原创 CS 400 Digit Permutation 思维+拓扑序

题意:给出n行,第i行有m个数字 每个数字范围为0~k-1.求出一个[0..k-1]的排列p,使得将n行中,数字x与p[x]替换后满足以下条件.每行都没有前导0,从1行往下,每行的字典序递增.k,n*m第i行字典序要大于第i-1行 则从左往右比较第一个不相同得数字分别为d1,d2 (d1!=d2) ,显然p(d1)现在得到n-1个关于p得限制 若这n-1条限制都满足 则

2017-12-13 18:51:03 395

原创 CF 900D Unusual Sequence 容斥

题意:问有多少个序列a.长度任意.序列a元素之和为y,序列a的所有元素的gcd为x. x,y由题意得:x * (b[1]+b[2]+...b[k])=y. gcd(b[1],b[2],...b[k])=1. (b[1]+b[2]+..b[k]) =y/x (不能整除则无解.)令n=y/x f(n)为序列gcd等于1,并且序列元素和为n的方法数.序列和要想为n,现在序

2017-12-12 22:04:10 277

原创 CC DEC.17 Chef And Easy Xor Queries 分块+懒标记

题意:长度为n的序列a,Q次操作,操作1:(i,x)将第a[i]变为x. 操作2:(i,k) 问有多少个前缀j(jn,Q暴力的话 每次单点修改a[i],都要修改pre[j](j>=i)的前缀和.每次查询都要查询每个pre[i](i现在对pre来分块.每块维护cnt[i][x]:该块pre值为x的有多少个.修改一个a[i]->y.对于每一块,每个x出现cnt次 则

2017-12-12 16:57:10 379

原创 CF 900.C Remove Extra One 单调栈+BIT

题意:[1..n]的排列a. 定义a[i]合法:当所有j (1n定义f[i]为删除第i个数 能让答案的贡献增大多少,c[i]为第i个元素左边比它大的个数先用单调栈处理出每个元素左边第一个比它的大元素.当c[i]等于1 删除第i个元素左边第一个比它大的元素j 答案才有可能增加 让f[j]++,求出最大的f[j]即可.#include using namespace st

2017-12-12 09:31:08 529

原创 CC NOV14 Chef and Churu 分块+BIT维护单点.

题意:长度为n的序列a,现在有n个函数f,第i个函数f[i]的值为(a[l[i]]+a[l[i]+1]...a[r[i]]).Q个操作操作1:修改a[i]的值.操作2:求f[l]+f[l+1]+..f[r]的值.n,Q可以用BIT O(logn)内求出一个f[i]的值 查询一次要O(nlogn) 总共O(Q*nlogn) TLE....现在能在O(logn)内求出一个f

2017-12-11 20:19:00 300

原创 CF 863D. Yet Another Array Queries Problem 逆向思维,递归

题意:长度为n的序列a,q次操作.操作1:将[l,r]内的数右循环移一位,a[l]->a[l+1],...a[r]->a[l].操作2:将[l,r]内的数逆序,a[l]->a[r],a[l+1]->a[r-1]...a[r]->a[l].n,q直接暴力O(nq)超时 注意到只要查询操作后,数列中m个下标.若第Q次操作是[1,L,R] L#include usi

2017-12-11 09:01:48 256

原创 CF 155C. Hometask 思维+模拟.

题意:给出一个字符串s,k个二元组.二元组(a,b)表示字符a和字符b在字符串中不能相邻.(每个字符最多出现在一个二元组中).|s|先把相邻相同的都合并在一起.现在字符串为:a[1],x,y,a[4],a[5]....现在如果某个区间 出现:w,xyxyxyx,z (x,y)为矛盾 则要合法:删除该区间所有x或者删除该区间所有的y. 且删除后不会和相邻的产生矛盾.#incl

2017-12-10 17:49:14 266

原创 Atcoder 400-Recording 选区间,差分

题意:n个节目,C个频道,每个节目有三个参数(s,t,c) 表示该节目在频道C播放,播放时间为[s,t).切换频道限制: 若一个摄影机在频道i录制了[s,t) 则不能在[s-0.5,t)时间段录制其他频道的节目.同一个频道的节目播出时间不会重叠.n,s[i],t[i]i!=j时,录完频道i后 下一次录频道j的节目要满足 s[j]-t[i]>=1.设f[i]为i时

2017-12-09 20:03:12 288

原创 Nowcoder 5.D 子序列 组合数学

题意:给出字符串T,问有多少个长度为m的字符串S满足,T是S的子序列.|T|,m设d[i]:[1...i]时,字符串T第一次作为子序列出现d[i]= (C(i-1,t-1)*pw[i-t]) - (d[i-1]+d[i-2]+..d[1]). 前半部分明显计算重复!!!(然后就卡在这里了..).换种思考方式,m个位置 假如当前匹配了i位 那么匹配到下一位之前 每个位

2017-12-09 09:02:19 232

原创 CodeChef DEC17 D.Hamming Distance of arrays 构造,模拟.

题意:长度为n的序列a,序列a中每个元素出现次数打乱序列a的顺序得到序列b.问(b[i]!=a[i])个数最多的序列b为多少? T若每个元素只出现一次 则将序列a左循环移动一位即可.现在将位置分成出现两次和出现一次.两种位置各自做左循环移位即可.#include using namespace std;typedef long long ll;const int N=

2017-12-08 17:50:29 193

原创 CodeChef DEC17 C Total Diamonds 递推

题意:n*n的网格,(i,j)的编号为i+j,价值为编号位数中:偶数数字和奇数数字的差的绝对值 例如编号1222 价值为|2+2+2-1|=5.T注意行与行之间的关系 第i行和第i-1行的编号除了首位和末位不同其它的都相同(第i行第x个等于第i-1行第x+1个).设f[x]为数字x的价值,d[i]为第i行的总价值 则d[i]=d[i-1]-f[i-1+1]+f[i+i-1]+f

2017-12-08 10:43:28 257

原创 CF 846 D. Monitor 滑动窗口,k*k子矩阵最大值

题意:n*m的矩阵,初始全部为白色,Q次操作,第i次操作发生在时间ti,(xi,yi)变为黑色.问第一次出现k*k黑色子矩阵的时间? n,m二分时间 每次O(n^4)判断. TLE.. (后面发现正解是二分,然后令此时黑色为1,白色为0,用二维前缀和判断是否有k*k的子矩形即可)a[x][y] 为(x,y)变为黑色的时间,设f[x][y]为以(x,y)为左上角,边长为k的子矩形

2017-12-07 21:54:50 482

原创 CS 400 Seven-egment Display 贪心+模拟,DP

CS 400题意:a[i]:数字i需要的火柴个数[i=0..9] 问正好用k个火柴时 最小能拼成的数是多少? ka[]={6,2,5,5,4,5,6,3,7,6}.首先位数尽量小,总共位数为k/7位.剩下r=k%7个火柴{0~6} 分别讨论一下 例如r=1时 拆掉一个7 现在用8个火柴 放一个1和0.即可.现在位数确定了 但是数还可以减小 例如k=10 得到78 但可以减小到2

2017-12-05 11:25:53 212

原创 CS 400 Restricted Permutation 排列,DP计数

题意:给出序列a,a[i]为1:数字i出现在数字i+1之前 ,a[i]为0:数字i出现在数字i+1之后n假设y=x+1出现在x之后 已知前x=6的数的某个排列为 00X000 现在若y在第4个位置上 则 ...Y... 则X放入的位置可以为1~3  例如X放入位置3 就对应dp[x][3]的排列个数.(原本在j的位置向后偏移)设dp[i][j]:[1..i]排列满足限制 并

2017-12-04 16:38:34 227

原创 Nowcoder 7.E 珂朵莉的数列 逆序数,BIT

题意:给出长度为n的序列a,求序列a所有区间的逆序数之和?逆序数(ia[j] 则(i,j)为一个逆序数对). nia[j] (i,j) 这一对 出现了 i*(n-j+1)次.算贡献一对对算是也有n^2对 那么从后往前枚举左端点i 用BIT统计[i+1,n]比a[i]小的权值即可 a[i]>a[j] 则累加上n-j+1.答案爆ll,这里用了__int128#include

2017-12-02 08:52:12 271

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除