自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Educational Codeforces Round 44 (Rated for Div. 2)题解

A. Chess Placing(模拟)题目链接:点击打开链接题目大意:现在有长度为n的格子,n个格子分为两类,奇数格子和偶数格子。给出n/2个元素的队列,给出他们当前在n个格子中的位置,他们能左右移动,但一个格子只能由一个元素,问最少移动多少次将所给出的所有元素移动到奇数格子或是全部移动到偶数格子。题目思路:观察的题目的数据范围100,暴力计算奇数和偶数格子的最少步数比较即可#include &...

2018-05-27 19:17:34 169

原创 Codeforces Round #479 (Div. 3) F. Consecutive Subsequence(思路 STL——map,最长连续递增子序列)

题目链接:点击打开链接题目大意:给你一个长度为n的序列,求逐步递增的最长子序列,即为x,x+1,x+2,x+3......子序列:即删掉原序列的某些元素,但元素的顺序不发生变化。输出子序列的长度,和子序列中元素的下标。思路:用map来记录即可  map记录的是从开始到这个元素,最长的子序列长度。遍历原数组,对于元素x,查询mp【x-1】的子序列长度,元素x的最长子序列长度为mp【x】=mp【x-1...

2018-05-11 00:24:30 197

原创 Codeforces Round #478 (Div. 2) D. Ghosts

Codeforces Round #478 (Div. 2)D. Ghosts 点击打开链接题意:有n个鬼魂在二位坐标上直线行走,某个时间点,它们恰好在一条直线上,给你这条直线y=ax+b中的a和b,然后给你n个点的横坐标和它们在X轴和Y轴的速度,问从t=−∞  到t=+∞的时间段里,它们相互之间碰撞了几次。思路:列方程组:两个人i,j相撞的条件是:  a*x(i)+b+t*vy(i)=a*xj+...

2018-05-09 23:41:47 113

原创 Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 2) C.Alternating Sum(等比数列求和)

题目链接;点击打开链接题目大意:给出一个数列s,其中的元素为s1,s2,s3......sn。元素要么是1(用‘+’表示),要么是-1(用‘-’表示)这个数列以k个数为一个周期,且n能被k整除。给出两个数a,b,求题目思路:很显然,这个求和公式中,相邻两项的比值的绝对值都是确定,都是b/a。那么这道题首先想到的就是等比数列求和公式。但是因为si这个系数,可能是正,可能是负,所以不能直接等比数列求和...

2018-04-19 00:47:52 182

转载 逆元

逆元(inv)  1.什么是逆元  当求解公式:(a/b)%m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法:  设c是b的逆元,则有b*c≡1(mod m);  则(a/b)%m = (a/b)*1%m = (a/b)*b*c%m = a*c(mod m); 即a/b的模等于a*b的逆元的模;  逆元就是这样应用的;   2.求逆元的方法  (1).费马小定理  在是素数的情况下...

2018-04-19 00:20:57 344

原创 Educational Codeforces Round 42 (Rated for Div. 2)D. Merge Equals(STL)

题目链接:点击打开链接题目大意:给出n个数,接下来对这个数列进行一个操作,即从左往右找最小的两个相同的数,然后将左边那个删除,右边那个数的值乘以2。不断进行以上操作,直到无相同的数为止,输出最终那个数列。题目思路:STL,map中套一个set的操作,mp【i】指的是大小等于i的数的集合,集合中记录的是这些等于i的数的位置。从小到大的遍历mp,如果有两个,则将其合并为一个放到2*i的集合中去。如果奇...

2018-04-14 21:15:30 204

原创 POJ 1651 Multiplication Puzzle(区间DP)

题目链接:点击打开链接题目大意:给出n个数,a1,a2,a3..an,现在要删除中间的n-2个数,使得最后只剩下a1和an.删除的规则是,如果要删除ai,那么他需要付出的代价是ai-1*ai*ai+1,求删除的最小代价和题目思路:区间dp的思路dp[0][n-1]表示保留a0,an-1,删除中间的数的最小代价求解dp[i][j]的时候,就是枚举[i+1,j-1]中最后删除的元素。即,dp[i][j...

2018-04-10 22:06:05 132

原创 ZOJ 3469 Food Delivery(区间DP)

题目链接:点击打开链接题目大意:有一家快餐店送外卖,现在同时有n个家庭打进电话订购,送货员得以V-1的速度一家一家的运送,但是每一个家庭都有一个不开心的值,每分钟都会增加bi,值达到一定程度,该家庭将不会再订购外卖了,现在为了以后有更多的家庭订购,要将外卖送到的情况下使得所有用户的不开心值总和达到最小题目思路:DP的思路就是,如果要访问完[i,j],那么它的子区间一定访问完了。用dp[i][j][...

2018-04-10 20:57:00 124

原创 HDU 2476 String painter (区间DP)

题目链接:点击打开链接题目大意:给出两个串s1和s2,一次只能将一个区间刷一次,问最少几次能让s1=s2例如zzzzzfzzzzz,长度为11,我们就将下标看做0~10先将0~10刷一次,变成aaaaaaaaaaa1~9刷一次,abbbbbbbbba2~8:abcccccccba3~7:abcdddddcba4~6:abcdeeedcab5:abcdefedcab这样就6次,变成了s2串了第二个样...

2018-04-09 22:51:39 115

原创 Educational Codeforces Round 36 (Rated for Div. 2)D. Almost Acyclic Graph(正解!!百度的那些拓扑排序现在都已经TLE!)

题目链接:点击打开链接题目大意:给你一个有向图,其中可能会有一些有向环,最多去掉其中的一条边,使这个有向图成为一个无环图。思路:现在网上普遍都是一些拓扑排序求解的代码,虽然当时比赛的时候确实可以ac,但更新数据之后将会TLE!!现在介绍一下Codeforces的官方题解上的方法。可以概括为一句话:先找出任意的一个有向环,然后对这个有向环上的边进行枚举删除后检查这个有向图是否无环。为什么可以这么做?...

2018-03-17 20:49:33 179

原创 Educational Codeforces Round 36 (Rated for Div. 2)C. Permute Digits(贪心)

题目链接:http://codeforces.com/contest/915/problem/C题目大意:给你两个数a,b。调换a各位数字的顺序,组成小于b的最大数。思路:贪心的想法。首先如果b的位数比a的位数多,那直接对a各位从大到小排序即可。如果位数相等,我们从最高位开始贪,尽量让前面各位与b相同,如果出现某一位没有等于只有小于,那么后面的就无需再排序,因为后面如何排序a都小于b,所以后面的从...

2018-03-17 15:34:29 166

原创 P1908 逆序对(洛谷)

题目链接:点击打开链接题目大意:求逆序对对数思路:进行归并排序,计算总共交换了多少次详细归并排序见博客:点击打开链接满分代码:#include<bits/stdc++.h>using namespace std;//下面就是 归并排序求逆序对 的过程==const int maxn=1008611;int a[maxn],r[maxn],ans=0,n;//ans作为全局变量,...

2018-03-12 21:33:32 685 2

原创 Codeforces Round #392 (Div. 2) D. Ability To Convert

题目链接:点击打开链接题目大意:一个n进制下的数k,其中k不会用字母,如果有A就用10代替了。求k这个数对应的,在10进制下最小的数。题目思路:思路有两种。第一种比较麻烦但容易想到的贪心:(从后往前)从后往前低位贪心选取的数尽量大。要注意数字中有0的时候,如果不能和后面加前面不为0的数组在一起,将后面先组起来,然后在判断当前0时候能和前面不为0的组,不能单独成一位。第二种代码极其简单方便,但需要认...

2018-03-03 16:31:13 114

原创 CF758 C. Unfair Poll (模拟)

题目链接:点击打开链接题目大意:有n行m列学生,有一位老师在课上会问k个问题,在行上,是按照1,2。。。。n-1,n,n-1.。。。1这样的顺序提问,求学生当中回答问题个数最多和最少的个数,以及在第x行第y位的同学回答的问题数。思路:当n>1时,1,2,……,n-1,n,n-1,……3,2为一个循环节,即有2*n-2行,其中每个循环节第1行以及第n行都只回答一次,其他都回答了两次,然后直接用...

2018-03-03 14:18:24 788

原创 Codecraft-18 and Codeforces Round #458 D. Bash and a Tough Math Puzzle(线段树)

题目链接:点击打开链接题目大意:给出一个数列a:a1,a2,a3......an有两种询问:第一种:1 l r x   意思是在数列a的[l,r]的区间中,如果在最多改变一个数字的情况(不是真的改变,只是假设改变的话),这些数字的公约数能被x整除则输出YES,否则输出NO。第二种:2 i y将数列a中的ai的值改为y思路:典型的线段树的题,单点更新。首先叶子结点记录的就是这个数列,然后父节点是他两...

2018-03-01 21:25:03 136

原创 Codecraft-18 and Codeforces Round #458 (Div. 1 + Div. 2, combined) C. Travelling Salesman and Specia

题目链接:点击打开链接题目大意:给出一个二进制数m,这个二进制数中1的个数为n,将m转变为n记做操作一次,知道将m转变为1结束,操作的总次数记为m的步长。现在给出一个数n,和步长k,求小于等于n的数中有多少个数的步长为k。因为个数过多,需要模109 + 7.思路:2的1000次方是一个很大的数,但是只要经过一次操作之后,就会变成一个小于等于1000的数,所以我们可以先预处理出来所有小于等于1000...

2018-03-01 17:22:12 155

原创 D. Too Easy Problems(二分,排序,贪心)

题目链接:点击打开链接题目大意:给出n个问题和总时间t。给出的n个问题,对于每个问题都有一个限制题数,如果答题数超过了该题的限制题数,该题不得分;以及每道题所需要花费的时间。现在要求再规定时间内尽可能的拿高分。输出结果不唯一,即顺序不唯一,以及规定时间内做的不得分的题可算可不算。思路:二分,排序,贪心等思路对于答题的数量我们可以用二分的方法检验,判断答题数量是否满足。其次在每个二分过程中,提取所有...

2018-02-27 22:24:08 161

原创 C. Party Lemonade(DP,贪心,数位)

题目链接:点击打开链接题目大意:有n种不同规格的饮料,容量分别为L,并给出每种饮料的价格。现在题目要求至少购买 l升的饮料,最少需要多少钱。思路:首先需要对价格进行一个预处理,如果val[i]*2<val[i+1],那么是没有意义的去购买第i+1种饮料,因为显然购买两瓶第i种的饮料更加的实惠,所以我可以用两瓶第i种饮料的价格和来代替第i+1种饮料的价格。因此,在进行预处理之后,他的性价比呈现...

2018-02-27 16:01:47 303

原创 hdu 6043 KazaQ's Socks 模拟

题目链接:题意:KazaQ每天穿袜子。一开始,他的衣柜里有n双从1号到n号的袜子。每天早上,他都会穿上一双袜子,是数值最小的那双袜子。每天晚上,他都把这双袜子放在篮子里。 如果现在篮子里有n-1双袜子的话,懒惰的KazaQ必须洗掉它们。 这些袜子明天晚上再次放进衣柜里。KazaQ想知道第k天应该穿哪双袜子。思路:假设n双袜子,进行模拟,发现规律为1~n,

2018-02-01 22:23:30 159

原创 HDU 6038 Function(思维+寻找循环节)

HDU6038:Function(循环群/节+找公式)传送门题意给出一个0∼n−1的排列a,一个0∼m−1的排列b,询问满足f(i)=bf(ai)  (0≤i≤n−1)的函数的个数分析由于 f(i)=bf(ai)=bbf(aai)=b⋯bf(i)l times b,我们发现a中的l个数构成了循环群,而只有当j为l的因子时才满足上述函数

2018-02-01 21:49:11 174

原创 rosdep init and update Error

rosdep init Error$ sudo rosdep init ERROR: default sources list file already exists: /etc/ros/rosdep/sources.list.d/20-default.list Please delete if you wish to re-initialize Then you can ex

2018-01-24 20:48:41 931

原创 POJ 3140 Contestants Division (删边,简单树形DP)

题目链接:题目大意:这删一条边使得剩余的两个分支 价值差最小。思路:删一个点和它父亲之间的这条边(因为父亲只有一个)。想到这里(这也不难想)就好办了,只要想办法记录每个节点 从它子树和父亲各能收获多少价值,它们的差值便是删除它和它父亲这条边的结果最后遍历一遍比较出最小差值就可以了。具体第一遍dfs,记录子树有多少节点第二遍dfs,能从父亲转移多少节点,(这里稍微注意一下 = 父亲的父亲+ 父亲的其

2018-01-18 18:43:46 271

原创 poj2378(树形DP)

题目链接:题目传送门题目大意:删除一个节点后,他的最大子树的结点个数小于等于一半。以升序的方式输出所有满足的结点。如果没有的话输出NONE思路:即找树的重心的算法 搜索计算每个结点子树的大小#include#include#include#include#include#includeusing namespace std;#define maxn 50000+10int n;i

2018-01-17 22:40:41 405

原创 poj3107 求树的重心

题目链接: 点击打开链接题目大意:给一颗n个结点的树,节点编号为1~n,问删除一个节点之后,让剩下的分支中节点数量最多的尽量少。可能有多种方案,按编号顺序输出。题目思路:树形DP问题先求他的每个子树的节点个数,n减去以该节点为根的树的节点数为他父子树的节点个数,比较取较大的那个即可。#include#include#include#define Max(a, b) a

2018-01-17 17:17:54 177

原创 HDU 2196 Computer (树形DP 求树上每个点能到达的最远距离)

题目链接:题目传送门题意:求树上每个点的最远距离是多少思路:对一棵树的一个结点求他的最远距离只有两种情况,要么往他的儿子结点一路走到叶子结点,要么向他的父节点往走,然后在往下一直走到叶节点,(但需要注意的时,一但你往下朝子节点走了,就不能再往父节点走了)。对于第一种情况,第一个搜索,直接回溯搜索。(从树的下部到上部得出结果)而对于第二种情况,需要用到第一种情况的数据

2018-01-16 23:00:09 1199

原创 HDU1520(树形dp入门题)

题目链接:题目传送门题意:在一个有根树上每个节点有一个权值,每相邻的父亲和孩子只能选择一个,问怎么选择总权值之和最大。思路: 树形dp的常规入门题:设dp[i][0]表示:当前这个点不选,dp[i][1]表示当前这个点选择的最优解。转移方程:dp[cur][0]+=max(dp[son][1],dp[son][0]);//当前这个点不选,那他的孩子可选可不选,取 最大的。

2018-01-16 10:21:07 181

原创 HDU 6034(字符串相加 每个字母代表一个数字 算贡献度 贪心)

题目链接;题目传送门题目大意:给出的字符串,每个字符建立一种与0-25的对应关系。然后每个字符串看成是一个26进制的数。问能获得的数的总和的最大值。(最后对1e9+7取模)。(不能有前导零 即字符串长度大于1,那么第一位不能为0)思路:所有的字符串,无非就是每个字符的贡献乘上赋予的映射的权值。所以我们可以按照贡献排序。贡献其实就是跟位置有关的系数,我们把对应的位置记录下来,转换成一个2

2018-01-14 14:26:17 508

原创 hdu6033 多校联赛(1)A 数学水题

题目链接:点击打开链接题意:给一个数m,求一个数k满足10^k小于等于2^m-1。思路:先了解几个数学知识:(logn m) = (logx m)/(logx n)(logn m) = 1/(logm n)log(N*M) = logN + logMcmath头文件中的log(x)是以e为底x为真数的对数函数(也有log2(x), log10(x)),即数学中的ln

2018-01-12 21:14:00 164

原创 MATLAB的solve函数

简单来说,solve函数可以进行以下情况的求解:(1)等式:单/多变量+线性/非线性 ;(2)不等式(是MATLAB doc solve的全部翻译,将常用部分标注彩色)语法S = solve(eqn,var)exampleS = solve(eqn,var,Name,Value)exampleY = solve(eqns,vars)Y = solve(eqns,vars

2018-01-11 22:15:44 8418 1

原创 Codeforces Testing Round #14 (Unrated) - B - Door Frames(DFS)

题目链接:题目传送门题目大意:给出等长的若干木棍,木棍长为k,然后要求制造4根长度为n的木棍和2根长度为m的木棍,求最少要用多少根长度为k的木棍。ps:制造的两种木棍不能是拼接的,要是一个整体。即要从比他长的木棍上截下来的。思路:考虑到只要造6根木棍,所以我们我可以直接用深搜的方法枚举所有的情况。#include#include#include#include#include

2018-01-09 21:31:59 231

原创 Codeforces Round #456 (Div. 2) B. New Year's Eve (贪心 )

题目链接:题目传送门题目大意:给你n个数,值为1-n,选出其中的m个数进行异或(^),求其最大值。n和m的范围为1e^18思路:贪心的做法 当m=1时,则是最大值n当m>1时,则将n的二进制数从右到最高位全部变成1,贪心的想,是不是脑洞大开的感觉。#include#include#include#include#includeusing namespace s

2018-01-09 16:05:44 164

原创 UVALive-7278 - Game of Cards

题目链接:题目大意:A、B两个人玩游戏。A先手,问最后谁赢。游戏规则:给出n堆纸牌,可任意选择其中一堆,记为x在x的顶部可取走[0,k]张纸牌,该堆纸牌至少留下一张x剩下来的纸牌中,记顶部的纸牌值为y,则移除最顶部的y张纸牌(即该堆至少还剩下y张纸牌才是合法)如果有人不能进行合法移动,则输了。题目思路:主要是写SG函数,每一堆的sg函数都不同。最后每一堆 ans ^=

2017-10-10 22:20:46 207

原创 博弈论 SG函数

别被文章长度吓到,学会博弈(SG)只用看前1/10。鉴于讲明白博弈要敲好多字,于是找了些论文拼凑,对疑难点加了注释并配上“美图”助解。另附上我手敲的精简版。Nim游戏重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算。Nim游戏是博弈论中最经典的模型(之一?),它又有着十分

2017-10-05 21:32:53 277

原创 UVALive 7272 Promotions【拓扑排序】【bitset】

UVALive 7272 Promotions【拓扑排序】【bitset】题目链接:https://vjudge.net/problem/UVALive-7272题目大意:给你一个拓扑排序图,即有n个人m个关系,每个关系a->b表示a表现的比b好,即如果选择了b那么就一定要选择a。现在要评优,分别求出选出A个优秀时一定能评上的人数,选出B个优秀时一定能评上的人数,选出B个优秀也评不上的人数

2017-10-05 20:09:03 277

原创 UVALive 7281 Saint John Festival (求凸包+判断点是否在凸包内(O(logn)复杂度))

UVALive 7281 Saint John Festival (求凸包+判断点是否在凸包内(O(logn)复杂度))题目链接:https://vjudge.net/problem/UVALive-7281题目大意:给出n个大点,和m个小点,判断有多少个小点在由三个大点组成的三角形内。思路:题意可以转化为,判断有多少个小点在大点组成的凸包内。那么就是一个凸包模板和一个判断点是

2017-10-05 16:43:58 1337

原创 NYOJ 取石子总结

转载自:nyoj的取石子有好多道,除了两道难度为6的,剩下的在这儿简单总结一下结论。 取石子(一)     有一堆石子共有n个,A和B轮流取,A先,每次最少取1个,最多取m个,先取完者胜,A,B足够聪明,问谁先胜?      比较简单的巴什博弈,若n%(m+1)!=0,A胜,否则B胜。取石子(七)      n个石子摆成一圈,A和B轮流取,每

2017-10-02 12:13:40 642

原创 HDU2147 Brave Game (巴什博弈 )

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2147 题目大意:       就是有一个游戏,在一个n*m的矩阵中起始位置是(1,m),走到终止位置(n,1);游戏规则是只能向左,向下,左下方向走,先走到终点的为获胜者。思路:只要把PN状态图描绘出来就行了:P点:就是P个石子的时候,对方拿可以赢(自己输的)N点:就是

2017-09-26 22:14:27 239

转载 博弈论总结

博弈论小结by xaphoenix写在前面第一次写一个专题的总结,由于笔者水平有限,所以里面肯定会有很多不恰当之处,希望读者不吝赐教。此外,这个小结中,有大约2000字的直接复制粘贴的知识介绍,有几道题的题目分析或者题意概括来源于网上各位大牛的博客,所以笔者不具有著作权,具体的参考资料在本文最后列出。另外,为了节省页数(准备把这个带到现场),所以排版比较凌乱,字体基本都是五号字,仅仅是

2017-09-26 20:14:21 2472

转载 博弈论 入门总结

博弈论:是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论。博弈论是研究互动决策的理论。博弈可以分析自己与对手的利弊关系,从而确立自己在博弈中的优势,因此有不少博弈理论,可以帮助对弈者分析局势,从而采取相应策略,最终达到取胜的目的。(摘自百度百科)(一)巴什博奕(Bash Game)只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最

2017-09-26 20:10:33 464

原创 hihocoder 1582 : Territorial Dispute (计算几何 凸包)(2017 北京网络赛E)

题目链接:https://hihocoder.com/problemset/problem/1582题意:给出n个点。用两种颜色(A,B)来给每个点染色。问能否存在一种染色方式,使不同颜色的点不能被划分到一条直线的两侧。题解:求个凸包(点最大数的凸包,允许三个相邻点共线)。此题的YES其实就两种情况:第一:如果不是所有点都在凸包上,那么把凸包上的点染成颜色A,内部的点染成颜色B

2017-09-23 22:41:57 205

空空如也

空空如也

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

TA关注的人

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