自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HihoCoder - 1636 Pangu and Stones 区间dp

题意:给定n堆石子,每次可以合并其中相邻的一些堆,合并的数目在区间[L,R]中,每次合并的花费是他们数量的和思路:明显的区间dp,但是有个点很巧因为每次合并都要限定合并的个数,所以区间dp的时候要记录个数状态;容易想到的是方程是:dp[i][j][k] 表示把 i 到 j 区间合并后,得到 k 堆石子的 最小花费,唯一的转移的方式就是合并成一堆的时候,其余的情况只是等式...

2018-08-30 22:06:07 136

原创 Aizu - 1384 Rendezvous on a Tetrahedron 思路+模拟

题意:略 思路:待更  #include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <set>#include <vector>#include <bitset>#i

2018-08-28 13:00:00 319

原创 Aizu - 1386 Starting a Scenic Railroad Service 思路+树状数组

题意:给定n个乘客的乘车区间,问他们乘车最坏情况下需要座位数和最优情况下需要座位数 思路:这个最坏情况是每个人任选座位,不管有冲突的怎么选,每个人都能做得下;这里我们考虑的是每个人乘车区间会跟别的几个人冲突,那加上他自身的个数选个最大的就是至少需要的座位数显然不能n^2求解,所以我们按区间左值从小到大排序: 先从左往右遍历,每个区间的右值更新到树状数组里,对于当前区间,我们只要...

2018-08-28 12:57:47 313

原创 HDU-6447 YJJ's Salesman 线段树+推导(维护区间最大值)

题意:给定n个点,每个点有个权值,只有从这个点的左下方45°上来,才能获得这个点的权值,每次只能从某个点往上走一格或往右走一格,或往右上走一格,问:找一条路径,使获得权值最大; 思路:首先我们能够想到对于A点(x1,y1),它的最优值应该是由某个  B点(x2,y2)  &&  x2<x1  &&  y2<y1  得来的,如果遍历的话...

2018-08-25 21:27:00 300

原创 HDU-6438 Buy and Resell 贪心+优先队列+原题

题意:给定n天,每天有个价格,可以买一个物品,可以把手中的物品卖掉 思路:codeforces 一个题跟这个题很像,贪心+优先队列:https://blog.csdn.net/xiang_6/article/details/78156338看完那个题,我们只需要解决最少买卖次数就好了;手动模拟队列的实现过程会发现,整个问题就是一些上升序列对价值的转移,上篇中我们将两个新的比...

2018-08-25 19:33:18 1165

原创 HDU - 6430 Problem E. TeaTree dfs+归并+假算法 2018多校-10

题意:给定 n 个点的树,每个点有权值,任意两个不同的点可以给他们的 LCA 贡献一个值 就是他们value的 gcd,输出每个点能得到的最大值,如果没有这样的值,输出-1; 思路:首先这是份假代码?? 4000ms  3000ms AC, 刚刚场上口胡了一下没敢写我们考虑某个结点,如果这个点能作为某两个点的LCA的话,那一定是他的两棵不同子树上的点,或者是他和他的某个孩子结点...

2018-08-22 22:34:27 137

原创 HDU - 6434 Problem I. Count 推导+欧拉函数

题意:(如下)Multiple query, for each n, you need to get n      i-1 ∑     ∑ [gcd(i + j, i - j) = 1] i=1    j=1 思路:在求解 ans_n 时,首先我们考虑小于 n 的 i, 我们要check 如题意满足的 gcd(a, b) 是否为1,也就是 a 跟 b 是否互质也就是对...

2018-08-22 21:35:13 682

原创 HDU - 6435 Problem J. CSGO 多维最远曼哈顿距离+原理 2018多校-10

题意:给定 n个物品A 和 m个物品B;每个物品都有一个值 s 和 k 个属性值 x[i],问:从n个物品中选一个 i,m个物品里选一个 j,ans = i_s + j_s + Sigma( | i_x[t]  -  j_x[t] | ,  t : [0,k-1] );  求 ans 的最大值思路:如果 Sigma部分求差值绝对值哪里不是绝对值的话,那样对于 i 物品中 x[i...

2018-08-22 21:16:08 282

原创 CTU 2017 J. Punching Power 建图+最大二分图匹配

题意:给定n个点,选一些点放置拳击机器,两个机器之间距离大于1.3,也就是两个机器不能同行挨着,同列挨着;问能防止的机器数最大多少 思路:题目可以转化成最大独立集,因为在坐标系里,不存在基环,那么就可以用匈牙利算法解决二分图最大匹配解决关于建图,把相邻的两个点(冲突的两个点)建边,然后跑二分图最大匹配数为ans,最后答案就是n-ans;注意,这里建的双向匹配边,所以an...

2018-08-21 21:47:18 249

原创 CTU 2017 B - Pond Cascade 二分

题意:n个池塘,给定每个的容量,物理高度 从高到低排列,每个都有水龙头往里流水,某个池塘水满了会往下面的池塘留为最后一个池塘满了的最少的时间 和 所有池塘都满了的时间思路:对两种情况分别二分答案(符合题意的条件的时间),check的时候从左往右,溢出的水量加到num里,在求所有的都满了的时间的时候,如果某个不满,直接返回0,如果都满了,返回1在求最后一个满了的时间的时候,如...

2018-08-21 21:03:54 313

原创 HDU - 5037 Frog 贪心+初值 2014 ACM/ICPC Asia Regional Beijing Online

题意:在一片河塘中,有只青蛙从0点开始,要跳到m点,这条线上起初有n个荷叶,每次青蛙最大能跳k米现在让你添加一些荷叶,让他能跳到m点,问最大的跳跃次数,注意,青蛙每次采取最优策略(尽量少跳) 思路:青蛙采取最优策略的话就是每次选能跳到的最远点跳,队友存在的荷叶,我们没办法做手脚只有在青蛙没法往前跳,需要我们添加荷叶的时候,我们贪心的选择一些位置,让他多跳一些假如青蛙跳到...

2018-08-21 20:53:54 168

原创 HDU - 6397 Character Encoding 插板法+容斥原理

题意:a1 + a2 + ... + am = k , 0 <= ai < n;  给定n m  k 问:上述式子成立的种类数有多少,1+2=3 和 2+1=3 是两种情况思路:说到这个题必须要说的是组合数学的隔板法:①k个相同的小球放入m个不同的盒子,每个盒子不为空的种类数:k-1个空隙中插入m-1个板子,C(k-1, m-1)②k个相同的小球放入m个不同的盒子,...

2018-08-20 11:59:55 1075

原创 HDU - 5438 Ponds 拓扑找环+dfs

题意:略 思路:用拓扑找环的方法,O(n) 把度数为1(跟其相连的点小于2)的点去掉,并标记,那样剩下一些环,然后dfs找每个环的权值和 和 环中结点的个数;将点个数为偶数的环去掉其实这样做的话可以直接计算 有奇数个点的环的权值;  #include <iostream>#include <algorithm>#include <...

2018-08-17 10:23:41 205

原创 HDU - 5441 Travel 并查集+离线查询

题意:略; 思路:首先对于能连通的点之间可以相互到达,对于给定的某个限定,我们可以把可行的路径找出来,然后计算每个连通块能相互到达的点对,然后加起来但是这样复杂度太大,所以我们把q个查询离线出来,从小到达排序,然后用并查集维护每个连通块,以及他们的大小,可以得到答案; #include <iostream>#include <algorithm...

2018-08-17 10:16:27 162

原创 UVALive - 7146 Defeat the Enemy 贪心+思路详解

题意:给定我方n个人,敌方m个人,每个人有攻击力a和防御力b,两个人战斗时,某方攻击力大于等于另一方,那么就能把对方杀死,同样也可能被杀死;每个人只能战斗一次现在要我方n个人中选一些人杀死敌方m个人,问我方最大存活人数思路:比较明显的贪心,,下面是推理思路首先只考虑 把对方全部杀死,那么就是我方按照攻击力从大到小排序,敌方按照防御力从大到小排序,这样一一对应看是否能把对方消...

2018-08-15 10:21:04 559

原创 UVALive - 7147 World Cup 贪心(思路题)

题意:给定n个人,选m个人晋级,只有胜负平三种关系,分别得分A,B,C,大小关系不限定思路:这个题真的考验思路,首先我们要从正常的比赛观念中跳出来,贪心的进行处理首先假设他们按照最后的得分大小排好了顺序,那么我们要求的最大不晋级分数ans1和最小晋级分数ans2就分别是第 m+1 个人和第 m 个人的分数,因为胜负是同时产生和消亡的,就像黑洞周围产生的阴阳粒子,所以我们交换...

2018-08-14 17:06:08 152

原创 HDU-6396 Swordsman nlogn模拟?暴力?

主代码请空降至422行题意:略;思路:k不大,建立k+1个数组,分别按照每个魔法属性排序,设置相应的指针,表示小于 当前猎人拥有的对应魔法属性的 位置,分别跑On,记录并处理;比上一个写法好多了; #include <iostream>#include <algorithm>#include <cstdio>#include ...

2018-08-14 10:01:10 113

原创 HDU-6396 Swordsman nlogn模拟?暴力?

 慢走 不送写的真滴捞!!!留下做纪念 按照每个魔法类型,分别用不同的数组保存并排序,根据当前各类型魔法值选择相应的合法的魔法类型标记这是On复杂度,前面排序需要O(nlogn)复杂度 #include <iostream>#include <algorithm>#include <cstdio>#include &l...

2018-08-13 19:32:21 124

原创 HDU-6395 Sequence 暴力+分块+矩阵快速幂 2018 Multi-University Training Contest 7

题意:给定公式如题;求 f[n] ,n < 1e9思路:根据前面部分,明显的是矩阵快速幂,但是后面还加了个 P/n 向下取整然后我们会发现 P/n 这个数对于某些n是一样的,所以我们想到有这个值进行分块处理;只要把前 1e6 个 f 数组求出来 ,这样对于 k = P/n ,最大到1000,只要枚举k,然后此时对应k的一个区间可以用矩阵快速幂求解注意n可能大于P;...

2018-08-13 18:57:41 151

原创 sdutoj-4219 Four-tuples 容斥原理(山东省省赛F题)

题意:给定四个数,a,b,c,d;分别给定他们的区间,问满足 a != b && b != c && c != d && d != a 的情况数有多少思路:一眼容斥题,当时场上写错了,一直觉得循环不等的关系之间会产生特殊的情况,就在纸上手推了一遍发现就是按照普通的容斥 奇加偶减 就ok了,令事件A = (a != b) , B...

2018-08-13 18:48:35 215

原创 UVALive - 8468 (计蒜客) Coins 概率dp+详解

题意:给定n个硬币,初始美国都是方面超上,m次机会,每次必须选k翻转,问采取最优策略的翻转方式,得到的正面朝上的期望是多少思路:这题按说需要高精度,但是懒得写,用double过了,可能是因为保留的结果的位数较小,不会误差那么大首先,最优策略就是:每次选取k个的时候,我们先选反面朝上的硬币,如果不够,再选正面朝上的,因为每次的翻转只跟上次的翻转情况有关,所以我们可以推导一下递推式...

2018-08-13 09:48:16 196

原创 UVALive - 8478 (计蒜客) Sum of the Line 推导+普通容斥

题意:题目给定了 T(r,c) 和 S(r,c) 的定义; 现在要求 sigma ( S(r,i)  ) : i in range(1,n);  ①思路:对于S(n,c) 我们可以理解成从 c 到 n 之间跟 n 互质的数的和;那么 ①式 可以理解为:sigma(k²) : k 与 n 互质那么我们可以求 所有1-n的数的平方和 然后减去 跟n不互质的数的平方和(即跟n有共同的...

2018-08-13 09:14:06 275

原创 Codeforces Round #503 Div. 2 C - Elections 暴力+贪心

题意:给定n个选民,m个政党,然后n行表示每个选民本来所选的政党p和让他选1号政党的花费问:1号政党赢得选举(票数最多)的最小花费是多少 思路:首先我们会往贪心方面想,但是因为涉及到当前选择哪个人不一定是最优的,如样例二,可能选另一个就可以代替之前选的两个而获得胜利;但是我们要是知道1号政党以多少票获得胜利,我们就可以贪心的得到 其最小花费;其实能想到枚举1号政党赢...

2018-08-12 09:32:24 809 1

原创 Color the ball 乱搞

思路:相当于全部区间更新完后再查询对于区间 l~r 更新时 对数组中 a[l] 加一,a[r+1]减一这样相当于用a[l]代表这个区间,从左更新时,用一个数加上a[l],那l点对应的区间也得到了更新,r点减一后,停止了对应区间的更新最后从左往右遍历,令t,每次+a[i]  #include <iostream>#include <algorithm&g...

2018-08-09 11:50:41 226

原创 Codeforces Round #374 (Div. 2) D. Maxim and Array 贪心+优先队列

题意:给定 n 个整数,有 k 次机会可以使任意某个数增加或减少 x问使得最后n个数乘积最小的序列是什么思路:首先要想到序列中可能存在负数负数为负数时:整个序列乘积为负,要是序列乘积更小,我们可以找一个负数-x,也可以找一个正数+x这时候就要考虑找哪个数:假设有m个正数,ans = a1*a2*....*am  如果要选择一个数-x,让这个式子变小,我们暴力每一个数的话...

2018-08-09 10:16:35 172

原创 HDU - 6373 Pinball 物理题

题意:一质点从斜坡上方自由下落,问能在斜坡上反弹几次思路:先求出质点第一次接触斜坡的点的速度,然后分解得到延斜坡方向的分速度 vx 和垂直斜坡的分速度 vy同时求出重力加速度g 延斜坡方向的分加速度gx 和垂直斜坡的分加速度gy每两个碰撞点之间 看做一个过程,vy:先变成0,在变成vy,在两个点的大小一样,gy恒定,可以求两点间时间然后可以求得两点间距离,ojbk自闭了...

2018-08-08 21:28:41 356

原创 HDU - 6370 Werewolf 推规律+拓扑判环+bfs

题意:给定n个玩家,每个玩家只有两种身份;然后每个玩家说某一个玩家是人还是狼,如果这个玩家是人,那他只会说真话;否则可能说假话可能说真话; 思路:开始我们以为没法判断是否有确定的解,猜了0 0 不对,后来发现:当两个玩家A,B:A说B是人,B说A是狼,那如果A是人的话,B就是狼,而A说B是人,矛盾,那么A不可能是人,即判定了A是狼由此再推,三个,四个....玩家成环的情...

2018-08-08 20:24:10 246

原创 Codeforces Round #501 F. Bracket Substring 思路+dp+KMP 详解

题意:给定n和一个括号序列 t,问:一个长度为2*n 的括号序列 s 的种类数,要求 t 是 s 的子串,s是平衡括号序列;思路:这个题算是 BZOJ - 1009: [HNOI2008]GT考试 dp+KMP https://blog.csdn.net/xiang_6/article/details/81434904的简化版本; 解释一下这个题: 首先我们不考虑是否是平衡...

2018-08-08 11:22:29 465 2

原创 HDU - 6351 Beautiful Now 思路+bfs

题意:给定长度最大10位的串,问任意交换两个数k次 能够得到的最大最小值思路:首先想到的是从第一个往后面找最小/最大的 进行交换,然后会发现后面有多个 最小/最大值时 无法决定换那个最优然后我们就可以bfs进行暴力,每次找到最小/最大的交换后加入队列,用string存这个串,可以自动比较大小ps: 本题解初始想直接找到最小的退出,所以用了优先队列,重载了排序,但是发现不能得...

2018-08-08 10:15:20 368

原创 Codeforces Round #501 D. Walking Between Houses 构造

题意:给定n,k,s:有1-n个点可以落脚,开始在1点,然后走k步,是否可以使行走路径长度达到s,可以则输出路径思路:行走的路径没有限制,不超过n就行,所以我们首先检查是否合法如果 (n-1)*k  < s 或者 k > s 则不合法然后每次都走 s/k 步就可以了,其实这么说有错误, 若 cnt = s%k > 0 那么就要有cnt次多走一步,这样比较简单...

2018-08-08 10:06:26 174

原创 Codeforces Round #501 E2. Stars Drawing (Hard Edition) 暴力枚举+标记

题意:定义一种“星”,问有多少个,输出坐标和大小,,不合法时输出-1思路:他的星可以重叠,所以我们枚举每个星的中心点,尽量往外找,找到这个点为中心的最大大小的星存起来最后 对整个矩阵标记,检查合法情况  #include <bits/stdc++.h>using namespace std;typedef long long ll;const int...

2018-08-08 09:56:21 232

原创 CodeForces - 982D Shark 思路+带权并查集

题意:给定n长度序列,包含n个不同的数,求一个k使得以小于k的数(或区间)分割的所有区间,区间长度相同的同时,区间的个数尽量多,k尽量小思路:n个数值各不相同,我们能够知道,答案肯定是n个数中某个数+1;这样我们从小到大遍历n个数,同时维护他们在原序列的下标,这样就将原问题转化为:将当前的数(a[i])加入之前的所有数的集合,看下标连续的所有区间的长度是否一样,在更新答案(区间...

2018-08-07 17:50:37 262

原创 HYSBZ - 1010 玩具装箱toy dp+斜率优化

题意:略思路:见上篇博客详解https://blog.csdn.net/xiang_6/article/details/81479453 #include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<string>#in...

2018-08-07 14:39:24 150

原创 斜率优化讲解 (例题:Print Article HDU - 3507 斜率优化)

斜率优化的学习: 题意:将序列划分,每段花费如题:区间和平方+m; 求最小花费;思路:用dp[i] 表示前i个数划分的最优解,sum[i] 表示前i个数的和显然dp[i] = max ( dp[j] + (sum[i]-sum[j])² + m ) for j : 0 to i-1;  复杂度O(n²):× 即需用到“斜率优化”;对于一般的n²-dp方程,可能有...

2018-08-07 13:45:37 244

转载 [模板] 斜率优化dp详解

转自大佬:https://blog.csdn.net/bill_yang_2016/article/details/54667902 算法简介今天xinyue讲了斜率优化,全程懵逼,居然还有这么牛逼的东西。 于是与achen讨论了一下,总结一些东西。 斜率优化Dp其实是单调队列的推广,单调队列、旋转卡壳、斜率优化都利用了单调性降低时间复杂度。算法简介举个例子 有些动规状态...

2018-08-06 10:56:31 10035

原创 BZOJ - 1008 越狱 快速幂-正男则反

题意:给定n个房间,m种教,n个房间中有两个相邻的房间的犯人信仰的教相同就会越狱,问会越狱的种类数有多少思路:这个可以用“正男则反”考虑 "全部可能(m^n) "  减去  "不会越狱的( m*(m-1)^n )"  快速幂解决; /************************************************************** P...

2018-08-05 20:33:15 205

原创 BZOJ - 1009: [HNOI2008]GT考试 dp+KMP

题意:给定字符串ch,问长度为n的字符串,有多少种可能不包含字符串ch思路:算是比较经典的dp的题,我们首先容易想到包含这个串的字符串有多少个,但是发现难以实现,然后我们用递推的方式来直接求解不包含这个串的新串的个数,令dp[i][j] 表示 我们维护的当前串长度为 i,并且其包含j个字符的后缀 恰好是ch串的前缀,那么答案ans即为 ans += dp[n][i]  : ...

2018-08-05 20:24:27 233

空空如也

空空如也

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

TA关注的人

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