11 2016 档案
摘要:题意 一个联通图里给定若干个点,求他们到某点距离之和的最小值。 题解 枚举到的某点,然后优先队列优化的dijkstra求最短路,把给定的点到其的最短路加起来,更新最小值。复杂度是。 注意此题给的n是奶牛个数,p是牧场个数,p才是点的个数N,所以head、dis、vis要开到10
阅读全文
摘要:题意 4 2个格子分别为 1234 8765 的魔板有3种操作,A:上下两排互换,B:最后一列放到第一列前面,C:中间四个顺时针旋转1格。 现在给出目标状态,找出最少步数可从原始状态到达目标状态,且输出最小字典序的操作序列。 题解 bfs,全排列编码判重可以用康托展开,也可以用vis[8][8][8
阅读全文
摘要:题意: 5个同心圆,告诉你角速度,每个圆有1至5个楔,告诉你起点和宽度。求最早时间如果有的话使得存在某个角度经过5个圆的楔。 题解: 最重要的是要意识到,360秒钟后,每个圆都回到了原来的位置。 我的具体解法:对于时间t,dfs一遍,f[i]==0表示角度i 是楔,dfs(i)表示对第i个圆遍历36
阅读全文
摘要:http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n grid. In this game a ships are placed on the grid.
阅读全文
摘要:A.Phillip and Trains CodeForces 586D 题意:过隧道,每次人可以先向前一格,然后向上或向下或不动,然后车都向左2格。问能否到达隧道终点。 题解:dp,一开始s所在列如果前方为'.'则dp[i]=1。r[i]代表上一次的dp[i]值。 如果该行当前可行,那么它就可以更
阅读全文
摘要:http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants to reach cinema. The film he has bought a ticket
阅读全文
摘要:Theater stage is a rectangular field of size n × m. The director gave you the stage's plan which actors will follow. For each cell it is stated in the
阅读全文
摘要:http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interview down without punctuation marks and spaces to s
阅读全文
摘要:题意:求第k大的最多有l个1的n位二进制。 题解:dp[i][j]表示长度为i最多有j个1的二进制有多少种,则有: 状态转移:dp[i][j]=dp[i-1][j]+dp[i-1][j-1],即第i位放1或者0。 边界条件:dp[0][i]=1,dp[i][0]=1。 长度为n,最多m个1的二进制可
阅读全文
摘要:题意:输出n的阶层最后一个非0数。 题解:可以把5和2的个数算出来,每次把5和2都除掉,最后乘上比5多出来的2。我的解法是,每次把尾巴的0去掉,并且保留3位,算到最后取尾数就可以了。、
阅读全文
摘要:题意:给你n种价值不同的邮票,最大的不超过10000元,一次最多贴k张,求1到多少都能被表示出来?n≤50,k≤200。 题解:dp[i]表示i元最少可以用几张邮票表示,那么对于价值a的邮票,可以推出dp[j]=min(dp[j],dp[j-a]+1)。j从a到k*10000顺序枚举,因为类似于完全
阅读全文
摘要:题意:给你一个01字符串,将长度为a到b之间(包含a、b)的子串按照出现次数排序。注意输入输出格式 题解:01子串对应一个二进制,为了区别11和011这样的不同子串,我们把长度也记录下来,官方题解是在子串前加上1来区别。然后按次数排序。为了方便,我将字符串代表的二进制转化为int整数,输出时再转化为
阅读全文
摘要:题意:给你k(≤100)个质数,求质因子只包含它们的第n大的数。 题解: 方法一:维护一个数组,一开始只有给出的质数在里面,用每个质数去乘以数组中每个数,然后归并排序,长度保留到n,一轮接一轮,直到乘出来的新出现的数大于原来最大的数,那么如果当前是用最小的质数都没产生新的前n大的数,那么第n个数就是
阅读全文
摘要:完全背包。 http://train.usaco.org/usacoprob2?a=3Srffjlf4QI&S=inflate
阅读全文
摘要:题意:给你N/D的分数,让你输出等价的小数,如果是循环小数,用括号把循环节包起来。如果是整数,后面保留一位小数。每行最多输出76个字符。 题解:模拟除法,如果余数是第二次出现,则代表第一次出现的位置到此为循环节,注意输出,注意输出格式,注意输出每行最多76个字符。学习了一下题解的写法,先写入字符串a
阅读全文
摘要:题意:给出n条有权的双向边(10000),求到达Z最近的大写字母,及其距离。 题解:即求Z出发的最短路,用dijstra就可以了,注意边要开到20000以上。 /* TASK: comehome LANG:C++ */ #include<cstdio> #include<algorithm> #in
阅读全文
摘要:H行W列的迷宫,用2*H+1行的字符串表示,每行最多有2*W+1个字符,省略每行后面的空格。迷宫的边界上有且仅有两个出口,求每个点出发到出口的最短路。 以每个出口为起点bfs,需要注意的是,最后的距离是(d+1)/2。
阅读全文
摘要:题意:给你n(最多150)个点的坐标,给出邻接矩阵,并且整个图至少两个联通块,现在让你连接一条边,使得所有可联通的两点的最短距离的最大值最小。 题解:先dfs染色,再用floyd跑出原图的直径O(),然后枚举新增的边的端点O(),再分别找出到边端点距离最远的点(),那么添加
阅读全文
摘要:题意:C代表cows,F代表farmer,一开始都向北,每分钟前进1步,如果前方不能走,则这分钟顺时针转90°,问多少步能相遇,或者是否不可能相遇,10*10的地图。 题解:dfs,记录状态,C和F的位置各一维,C和F的方向各一维,所以vis[101][101][5][5]记录是否到过这个状态。
阅读全文
摘要:A. 编程题1 构造群码 时间限制 1000 ms 内存限制 65536 KB 题目描述 针对给定H,计算群码编码函数eH,并计算给定字的码字。 输入格式 第一行输入两个整数m,n;(m < n ,n < 10) 第二行输入m × (n - m) 个0或1,也就是矩阵H的上半部分,下半部分单位矩阵自
阅读全文