自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ACM交流帖

Continue

  • 博客(87)
  • 收藏
  • 关注

原创 bzoj 1014: [JSOI2008]火星人prefix

用treap记录前缀哈希值,二分求最大值#include<bits/stdc++.h>using namespace std;#define maxn 100005//////////////////////////////////////////////const int P1=1e7+7;const int B1=194317;int Pow1[ 110000...

2019-02-10 10:55:32 200

原创 NWERC-2017 Problem A. Ascending Photo DP

题目大意:给出一段长度为n(1<=n<=1e6)的序列,把该线段切割几次后重新拼接成一个单调不下降序列,问最少切割几次。虽然还不是很明白,但是还是记录一下自己的理解吧。首先做一部分预处理,把所有值做一次离散化,这个是显然需要做的; 把一段连续的相同的值合并为一个值,因为从中间切割的方案可以转化为在这段值左右边界处切割方案,而不会产生更高的代价然后第一个想法就是贪心。如果把所有不同...

2018-10-09 23:31:03 674 1

原创 2018 BUPT Summer Training 网络流 by 月加 题集总结

A - Drainage Ditches POJ - 1273 简单模板题B - Friendship POJ - 1815大致题意:时限2秒,给出200个点,5000 条边的无向图,以及S和T,问将S和T分割开来最少需要删去多少个点,以及最小字典序的割点集合建图方法:每个点分割成入点和出点,之间连容量为1的边;对于原来的图中的连边,则从起点的出点 向 终点的入边建立一条容量为极大值的边。...

2018-10-05 16:12:10 255

原创 NWERC-2017 Factor-Free Tree

题目大意:给出某一颗带点权树的中序遍历序列,问是否存在一颗对应的带点权树满足条件:每个节点的子孙节点的权值都和该节点的权值互质。如果存在则输出符合条件的树的每个节点父亲节点。 这题有数个关键点,第一个是利用类似于线性筛法的算法得到每个点权值有哪些质因子,利用线性筛法可以达到均摊每个权值log(质数的数量)的效率; 第二个是对于当前序列,如果存在多个点和其他权值都互质,取其中任意一个都可以得到解...

2018-07-22 20:48:39 588

原创 CF949D Curfew 贪心

CF949D Curfew原题链接大致题意:现在寝室要熄灯了,宿管开始查寝,但是许多同学们还待在朋友的寝室里。现在已知这一层楼有nn个寝室排成一排,每个寝室住有bb个人,而现在每个寝室分别有a1,a2,a3,…,an{a_1,a_2,a_3,\dots,a_n}个人,1号宿管从1号寝室往nn号寝室方向查各个寝室人数,2号宿管从nn号寝室往1号寝室查各个寝室人数,两个宿管各自负责检查一半的寝室里的人数

2018-04-23 21:14:25 2306

原创 Codeforces 932F

codeforces 932F

2018-04-02 21:05:09 425

原创 HDU6233 Infinite Fraction Path

题目链接:acm.hdu.edu.cn/showproblem.php?pid=6223大致思路:nex[i][j]表示从第i个点跳2的次方步后到达的位置,a[ j ][ i ]表示从第i个点跳2的次方步后得到的小数是第几大。然后就有了一个简单的排序来从a[ i ][ j ]得到a[ j ][ i+1 ],最后找到a[ j ][18]里第一大是哪一个。但是,这样的log*log的算法会被卡掉。

2017-11-28 13:48:23 502

原创 Codeforces 416E DP

原题链接:http://codeforces.com/problemset/problem/416/E大致题意:给出N(1如果尝试直接用递推的方法来解决这题会使得去重非常麻烦。于是尝试进行模型的转换,虽然直接统计答案可能会有重复的,但是如果先,求cnt[ x ][ T ]=以点x为起点且可能在x到T的最短路径上的边的数量,然后枚举每个点x看是否在S到T的最短路径上,如果在,就把cnt[ x

2017-11-23 11:47:11 302

原创 Codeforcces 891C Envy kruskal

原题链接:http://codeforces.com/problemset/problem/891/C题目大意:给出n个点,m条边的图,(0题解:把所有边按照边权从小到大排序后,假设每次询问的边集大小都是1,那么只要知道比这条边权值小的所有边构成的边集里,由kruskal选出的边集是否会和这条边形成环。如果不会形成环,那么就是说如果选这条边而后产生的最小生成树不会比原来的最优解更差,那么如

2017-11-20 20:03:00 540

原创 Codeforces 868F 分治优化Dp

原题链接:http://codeforces.com/problemset/problem/868/F大致题意:给出有n(n∑( calc[i]-1)*calc[i]/2,其中calc[i]为元素值为i的个数。我的理解,首先这题似乎和合并类DP很相似,如果定下f[ i ][ j ]为将前i个元素分割为j段的最小代价,有个显然地转移方程就是f[ i ] [ j ] = MAX{ f[ i1

2017-10-22 02:02:43 894 2

原创 Codeforces Round #436 (Div. 2) E fire DP

原题链接:http://codeforces.com/contest/864/problem/E题目大意:给出n个物品的价值vi,获得该物品所需的时间costi,物品从时间ti开始价值归零。问最多能获得多少总价值的物品,及其解决方案。首先对于两个物品i,j如果这两个物品都在解集里面,且ti然后对于两个物品i,j如果这两个物品都在解集里面,且ti=tj,vi>vj 则先获得物品i一定不会

2017-09-25 21:38:19 244

原创 Manthan, Codefest 17 E. Salazar Slytherin's Locket 数位DP

原题链接:http://codeforces.com/contest/855/problem/E题目大意:一个数字在B进制下为魔法数字当且仅当其在B进制下,0到B-1在其数位上均出现偶数次。问从L到R的B进制下魔法数字的数量。(L首先数位DP的框架大多是不会变的,重点在于如何求已知前a个数位上的数字,可以使得其为魔法数字的后面b个未知的数位上的数字排布方案数。假设前面a个数位中有sum

2017-09-25 16:46:38 240

原创 codeforces 852A

原题链接:http://codeforces.com/problemset/problem/852/A大致题意:给出一个数字,一种操作:在数位之间插入加号进行加法运算得到的结果作为新的数字。要求在三次操作之内把原数字变为小于10的数字。这题我是看题解才写出来的,就说一下我对题解的理解吧。令ds(x)代表x各数位上的数字之和。首先对于ds(x)于是就对于ds(x)对于

2017-09-24 10:48:15 431

原创 Codeforces 848C

原题链接:http://codeforces.com/problemset/problem/848/C大致题意:给出n个点,m条边的图,每次删去有公共点的2条边,问最多删几次,及其中一种方案。先简化一下题意,如果给出的是一颗树,对于某一个节点,如果它向下有2*k条边,则可以直接把这2*k条边两两配对删去;如果有2*k+1条边,则将剩下的一条边和连向这个节点的父亲的边配对删去,如果是根节点则

2017-09-20 19:15:03 355

原创 Codeforces 856A

原题链接:http://codeforces.com/problemset/problem/856/A大致题意:给出一个数列A(1其实把等式稍微处理一下就好了,ai+bj != ak+bl 即 ai-ak != bj- bl,就是说数列A两两数字之差不会是数列B中两个数字之差。然后是B中第一个元素一定是1,因为这样可以在不改变数组性质的情况下尽量使得数列数字最小。最后只要暴力依次筛

2017-09-20 09:00:57 389

原创 codeforces 852E

原题链接:http://codeforces.com/problemset/problem/852/E大致题意:一个人在树形的城市网络上旅行,旅行的规则是参观完一个城市后随机走向另外一个未曾到过的城市,直到不能走到其他未走过的城市时结束。他的朋友可以在某些城市开赌场,使得这个人在经过这些开了赌场的城市时,心情值由0变为1,由1变为0。问有多少种方法来选择这个人旅行的起点和开赌场的城市来使得这个

2017-09-19 22:09:56 342

原创 2017 ACM/ICPC Asia Regional Qingdao Online Smallest Minimum Cut 网络流

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6214题目大:给出一个网络流的图,问最小割的集合的最小大小是多少。首先要保证为最小割,然后是割集的大小最小。显然是有优先级的关系的,同时这个两个的求法是有相似之处的,最小割就是最大流,而割集最小化就是把所有可能的最大流子图的边容量全部修改为1时的最大流,就是在原来的最大流的子图上跑出的最大流。

2017-09-18 17:12:05 337

原创 2017 ACM/ICPC Asia Regional Qingdao Online Brute Force Sorting

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6215题目大意:给出一个序列,一种操作: 对于当前数列中所有满足a[ i ]>a [  i+1 ]  ( i操作执行到无法执行时停止,求最终的序列。这题有个显然的性质:每个元素最多被删除一次。利用这个性质,如果建立一个队列,队列内存所有a [ x ] - a[ pre[x] ]a [ x

2017-09-18 16:52:17 362

原创 Codeforces contest 861 D 暴力set

原题链接:http://codeforces.com/contest/861/problem/D大致题意:给出一些字符串,问每一个字符串在这个字符串集合里独有的最小长度的子串。建立一颗字符串树,然后把每一个字符串的子串都暴力加入进去,同时在每个节点记录第几个字符串经过这个节点。独有的子串就是从根节点到某个只有一个字符串经过的节点,路径构成的子串就是这个字符串的独有的子串。对于最小长度的限制

2017-09-18 16:35:25 356

原创 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Maximum Flow

原题链接:https://nanti.jisuanke.com/t/17118题目大意:有一个网络流的图,点的标号为从0到N-1,点i , j( i问从0到N-1的最大流是多少。假设2^k对于2^k点0到点i的流量不小于2^k,所以

2017-09-16 17:39:17 279

原创 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Xor

原题链接:https://nanti.jisuanke.com/t/17120题目大意:给出一颗n个点的带点权的树,问从a到b的最短路径上第k*p个点的异或和是多少。(n)先吐槽一下,可能我是中了一种叫做赛后1min过题的诅咒QAQ。这题的大概思路是,先用树链剖分预处理一下,再在求lca 的时候求异或和。对于k小于200的点,可以有足够的时间和空间来预处理以k为间距的前缀异或和,k大于

2017-09-16 17:22:30 982

原创 Codeforces 852B 矩阵乘法优化DP

原题链接:http://codeforces.com/problemset/problem/852/B大致题意:有 L 层的城市群,每层城市群由n个不相连的城市构成,上一层的第 I 个城市到下一层的第 J 个城市的代价是B[ J ],从最顶层的入口到第1层城市I的代价为 A[ I ],从最底层的城市K到出口的代价为C[ k ] ,问有多少种方法使得从入口到出口的代价和为M的倍数(答案对1e9+

2017-09-13 20:26:21 545

原创 Codeforces 853D 贪心

原题链接:http://codeforces.com/problemset/problem/853/D大致题意:有n个物品,每个物品的价格是1000或者2000,每次不用积分以全额买下一个物品可以累积10%*商品价格的积分。积分可以在后面的购物中用积分来抵消等同积分的花费。问依次买下这n个物品的最小花费是多少。先考虑物品价格只有1000的情况,显然每购买10个物品就可以用1000积分来买1

2017-09-12 21:25:41 397

原创 Codeforces 853C 树状数组

原题链接:http://codeforces.com/problemset/problem/853/C对于一个矩形,可以把整个平面划分为9块区域。然后只要暴力枚举各块区域进行配对就可以得到答案。同时用树状数组求各个区域内的格子数。代码:#include using namespace std;inline void read(int &x){ char ch;

2017-09-11 23:40:21 531

原创 2017 ACM/ICPC Asia Regional Shenyang Online Ping Ping Ping 树链剖分+树状数组

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6203题目大意:给出n+1个节点的树( 3先让我哭一会QAQ,昨天下午后半场一直在死磕这题,想了网络流,费用流,差分约束,树形DP就是没想到贪心,最后随便写了一发后效性明显地树形DP,假装没有划水(我好菜。。。。其实这题可以稍微简化一下,假设只有一条链的情形。就是给出一条链和m对起始点和终点

2017-09-11 13:48:48 234

原创 八月组队总结

说是总结,还其实是反省吧。从七月底和两个大佬组队以后,感觉到了我在很多方面的问题。最突出的问题就是,容易异想天开地想出奇怪的错误解法,其实这是思维不稳定的表现。急于求成,于是就自己yy了很多不存在的条件,自动忽略了很多细节,比如定dp状态时,忽略后效性。等到代码差不多完工时才发现不对或者挂了很多发才察觉,实在是个大坑。还有就是精神集中力的问题,往往到了最后一个半小时,最后准备翻盘的时机,精神往往就

2017-09-10 23:35:59 194

原创 2017 ACM/ICPC Asia Regional Shenyang Online array

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6197题目大意:给出一个序列,删去k个元素是否能构成不上升序列或不下降子序列(呃,先凑个数吧二分+单调栈跑出最长不上升子序列长度和最长不下降子序列长度,如果超过n-k则能构成,否则不能。代码:#include using namespace std;inline void re

2017-09-10 23:08:33 288

原创 2017 ACM/ICPC Asia Regional Shenyang Online card

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6205题目大意:给出两个长度为n的序列A,B,从1开始依次加Ai,减Bi,分数为第一次为当前和为负数的位置以前的Ai之和(左闭右开区间)。同时有一种操作可以把当前的A1,B1移动到序列最后,注意序列A的各个元素之和等于B的各个元素之和。问取得最大分数时,至少应该操作多少次。恩,先自我反思

2017-09-10 23:04:37 380 2

原创 2017 ACM/ICPC Asia Regional Shenyang Online transaction

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6201题目大意:一些城市及其之间的道路构成了一棵树。对于某一种物品,在城市 i 的价格是 ai单位金钱 ,而在道路上每走1单位长度就会花费1单位金钱。问任意选定买入该物品的城市和卖出该物品的城市,每个物品最大获利是多少。可以发现,如果一个城市的价格加上旅途费用后的单价比旅途终点的价格低,则在终点

2017-09-10 22:45:16 200

原创 最小费用最大流模板 POJ2135

代码:#include #include #include #include #include #include #define ll long long#define maxn 2200#define maxm 301000using namespace std;int now[maxn];long long v[maxm];int st[maxm],ed[maxm

2017-09-09 19:24:45 221

原创 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 Islands

题目大意:给出n个节点,m条有向边的图,问最少加入多少条有向边,使得每个点可以沿着有向边到其他任意一个点。首先用tarjan缩圈是肯定的。缩完圈以后,假设只有一个连通块了,那么只要把出度为0的点和入度为0的点都删去,就可以满足题意。然而,新加入一条边最多只能删去一个出度为0的点和一个出度为0的点,如果每次新加入的边都是链接一个出度为0的点,一个入度为0的点就是最优策略。如果不只一个连通块,

2017-09-09 18:19:23 258

原创 Codeforces Round #433Div. 2 D Jury Meeting 优先队列

原题链接:http://codeforces.com/contest/854/problem/D大致题意:n个人分别从1-n号城市乘飞机聚集到0号城市开会,开会时间为k天,每架航班都是当天起航,当天到达。只有所有人都已经到达0号城市后的第二天才能开会,开完k天会后的第二天每个人才能返回自己的城市。给出每架航班的出发时间,出发城市,抵达城市,价格,问所有人的最小总花费是多少。我的想法是,既然

2017-09-07 09:41:06 256

原创 Codeforces Round #432 C. Arpa and a game with Mojtaba 裸博弈+质数拆解

原题链接:codeforces.com/problemset/problem/850/C题目大意:给出一个数列,游戏规则如下:1.每个人选择一个质数p和正整数k,然后使得数列中所有是p的k次方的倍数的元素除以p的k次方;2.两个玩家轮流进行上述操作,某个玩家无法进行上述操作时,该名玩家失败,游戏结束。先让我哭一会QAQ ,我当时应该先看这道题的呀,这题我用了50min左右就过了,结果去写D

2017-09-05 21:17:58 480

原创 Codeforces Codeforces Round #432 (Div. 2 D ) Arpa and a list of numbers 爆搜+剪枝

原题链接:http://codeforces.com/contest/851/problem/D大致题意:给出一个序列,有两种操作,第一种操作是删除某个元素,代价为x,第二种操作是令某个元素自增1,代价为y。第二种操作可以对某个元素重复多次。问通过这两种操作使得序列的所有元素的gcd不为1的最小代价是多少。显然,最终的序列所有元素的gcd一定是某个素数q的倍数,可以枚举这个素数q然后对

2017-09-05 09:53:01 283

原创 Codeforces Round #430 (Div. 2) C Ilya And The Tree SET暴力

原题链接:http://codeforces.com/contest/842/problem/C大致题意:给出一颗有点权的树,令一个点的beauty值=在可以修改一个点的点权为零也可以不修改的情况下,从根节点到这个点的路上所有点的点权的总GCD。就是说,对于每一各点v, beauty(v)=gcd( val[a1],val[a2],val[a3]……,val[ak] ),a1……ak是从点

2017-09-01 13:19:26 212

原创 2016-2017 ACM-ICPC, NEERC, Moscow Subregional Contest K. Knights of the Old Republic kruskal

原题链接:https://vjudge.net/problem/Gym-101137K大致题意:给出n个点,m条边的图,要占领点i至少需要聚集ai个士兵到点i,空降1个士兵到点i的代价是bi,在一个点上可以的空降的士兵数量没有上限,只要在一条边的两个节点上聚集ci个士兵就可以占领这条边,占领某一条边以后可以无代价经过这条边,且在占领边或点的过程中士兵不会有牺牲,士兵在占领一个点以后可以经由被占

2017-08-24 22:04:17 724

原创 As Easy As Possible 倍增法

As we know, the NTU Final PK contest usually tends to be pretty hard. Many teams got frustrated when participating NTU Final PK contest. So I decide to make the first problem as “easy” as possible. Bu

2017-08-23 21:32:57 592

原创 数位DP Increasing or Decreasing

Increasing or DecreasingWe all like monotonic things, and solved many problems about that like Longest Increasing Subsequence(LIS). Here is another one which is easier than LIS (in my opinion).

2017-08-23 21:03:51 307

原创 POj 1741 树的点分治

看了漆子超的论文好像懂了一点点,就动手写了一下POJ1741。发现树的点分治其实也不是那么难,其主要流程好像就是不断地找当前子树的重心,处理重心的子树的答案,同时通过某种操作合并得到当前以重心为根的子树的答案。#include #include #include #include #include #include #include using namespace std;

2017-08-23 02:55:42 204

原创 UVALive 4730 - Kingdom 树状数组区间修改单点查询

原题网址:https://vjudge.net/problem/UVALive-4730大致题意:给出N个城市的二维坐标(没有两个城市的坐标重合),N                  有两种操作,road x  y 表示建立从第x个城市到第y个城市的边,保证没有重边和自环,也不会有边交叉                                        line k  表

2017-08-22 20:32:00 238

空空如也

空空如也

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

TA关注的人

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