GYM - 101147 K.Touristic Trip】的更多相关文章

题意: 一个人从城市0开始旅行.一共有N座城市,他每到一座城市都会寄一张明信片.给出从一座城市到另一座城市的概率和在每座城市寄出每张明信片的概率.给出长度为k的寄明信片的序列.问在该序列的条件下在第Z个城市寄出第Q张明信片的序列. 题解: 条件概率:P(A|B) = P(A,B)/P(B) dp[i][j]代表第i个城市是城市j且寄出第a[i]张明信片的概率. dp[i][j] += sum{dp[i-1][k]*p[k][j]*c[j][a[i]}(0<=j<n) P(B) = sum{dp…
gym/102021/K 题意: 给定n(n<=60)个直线 ,长度<=1000; 可以转化为取 计算 ans = (sum  + 10 - g) / ( n + 1)  在小于5的条件下的最大值,其中sum为任取n个的直线长度和,g是给定常数. 思路: 用类似背包的求法,把可能取到的结果用dp[i][j] = 1表示,其中i表示容量,j表示取了几个. #include <algorithm> #include <iterator> #include <iostr…
K. Perpetuum Mobile Time Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/problem/K Description The world famous scientist Innokentiy almost finished the creation of perpetuum mobile. Its main part is the energy generator which…
题目链接:http://codeforces.com/gym/100971/problem/K K. Palindromization time limit per test 2.0 s memory limit per test 256 MB input standard input output standard output Mihahim has a string s. He wants to delete exactly one character from it so that th…
题目:http://codeforces.com/gym/101933/problem/K 其实每个点的颜色只要和父亲不一样即可: 所以至多 i 种颜色就是 \( i * (i-1)^{n-1} \),设为 \( f(i) \),设恰好 i 种颜色为 \( g(i) \) 那么 \( f(i) = \sum\limits_{j=0}^{i} C_{i}^{j} * g(j) \) 二项式反演得到 \( g(i) = \sum\limits_{j=0}^{k} (-1)^{k-j} * C_{k}…
题目链接:http://codeforces.com/gym/100283/problem/K 题解: 要使其相邻两项的差值之和最小,那么越靠中间,其数值越小. 那么剩下的问题就是如何放数字了.一开始的想法是从中间开始放,然后:左右左右--, 后来发现当为偶数个时,这种放法的字典序并非最小,应该右左右左地放.所以从中间向两边扩散的放法需要分奇偶讨论(不太好写).那有没有其他放法不用分类讨论,且一步过的?有的,就是从两边开始,往中间靠近,即右左右左一直放到中间没有剩余位置.这种放法保证了字典序大的…
从(1,1)到(n,m),每次向右或向下走一步,,不能经过(x,y),求走的方案数取模.可以经过(x,y)则相当于m+n步里面选n步必须向下走,方案数为 C((m−1)+(n−1),n−1) 再考虑其中经过(x,y)的方案数,也就是(1,1)到(x,y)的方案乘上(x,y)到(n,m)的方案,为 C((x−1)+(y−1),x−1)×C((n−x)+(m−y),n−x) 于是答案就是下式取模 C(m+n−2,n−1)−C(x+y−2,x−1)×C(n−x+m−y,n−x) m和n大到10的五次方…
K - Cross SpiderTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87794#problem/K Description The Bytean cross spider (Araneida baitoida) is known to have an amazing ability. Namely, it can instantly b…
题意: 给出一颗有点权和边权的树.求每一个点u的子树中有多少点v,使得点v到点u的距离小于等于点v的权值. 题解: 对于每一个点,倍增的预处理出他的祖宗节点及距离.根据预处理的结果求出每个点能到的最远的祖宗节点. 设点u能到的最远祖宗节点为v.利用差分的思想在点tree[u]+1,点tree[v]-1. 最后每个点的答案就是子树的tree[]和. #include <bits/stdc++.h> using namespace std; typedef long long ll; ; int…
题意: 一个n*n的棋盘,有m个主教.每个主教都有自己的权值p.给出一个值C,在棋盘中找到一个最大点集.这个点集中的点在同一条对角线上且对于点集中任意两点(i,j),i和j之间的主教数(包括i,j)不小于pi^2+pj^2+C. 题解: 对角线有2个方向,每个方向有2*n-1条对角线.一共时4*n-2条.每个点都在2条对角线上. 对于在同一对角线上的点(i,j)若满足i-j+1>=pi^2+pj^2+C即-j-pj^2>=pi^2+C-i-1(i>j)即可. 那么将同一对角线上的点按x坐…
题意: 大矩形代表市场,大矩形当中有很多小矩形样式的伞.这些小矩形都贴着大矩形的左边或者右边且互不相交.小矩形以外的地方都是阳光.求经过大矩形时在阳光下的最短时间. 题解: 最短路的做法.起点和终点与每个矩形之间连边,每两个矩形之间也连边. 矩形之间两边有三种情况:1.两个矩形在同一边(k值相等)或两个矩形的宽度和大于(不能大于等于)大矩形的宽度 2.两个矩形的长度区间不相交(a[i].h+a[i].d<a[j].d||a[j].h+a[j].d<a[i].d) 3.长度区间相交 #inclu…
题意: 一共有G个子游戏,一个子游戏有Bi, Ni两个数字.两名玩家开始玩游戏,每名玩家从N中减去B的任意幂次的数,直到不能操作判定为输.问谁最终能赢. 题解: 当Bi为奇数的时候,显然Bi的所有次幂都是奇数,那么答案只需要判断Ni的奇偶性即可. 那么我们只需讨论Bi为偶数的情况. 用到了二项展开的一个定理.(B+1-1)^x展开后只有两种形式,即k*(B+1)+1或k*(B+1)+B.所以问题就变成在Ni%(Bi+1)个石子中取1或B个石子. Ni%(Bi+1)为B的时候有两种后续状态,0或B…
题目大意 将一个含有+,-,^,()的表达式按照运算顺序转换成树状的形式. 解题分析 用递归的方式来处理表达式,首先直接去掉两边的括号(如果不止一对全部去光),然后找出不在括号内且优先级最低的符号.如果优先级相同,则如果是左结合性(+,-,*,/)则选择最右边的一个,如果是右结合性(^)则选择最最左边的一个. 主要恶心的地方在于输出上.主要是记录一下每个点和符号的位置,在递归和返回时传递一些参数. ps:虽然输出比较恶心,但最终实现出来后还是感到十分地身心愉悦. 参考程序 #include <b…
传送门 解题思路 首先给出的树形态没用,因为除根结点外每个点只有一个父亲,它只需要保证和父亲颜色不同即可.设\(f(k)\)表示至多染了\(k\)种颜色的方案,那么\(f(k)=(k-1)^{(n-1)}*k\),而我们要求的是恰好染\(k\)种颜色的方案数,设其为\(g(k)\),易得 \[ g(k)=\sum\limits_{i=1}^k\dbinom{k}{i}f(i) \] 发现这个可以二项式反演 \[ g(k)=\sum\limits_{i=1}^k(-1)^{k-i}\dbinom{…
<题目链接> 题目大意: 一家公司想让n个人给他们的产品评论,所以依次去找这n个人,第i个人会评论当且仅当已经有ai个人评论或他确实对这个产品感兴趣,但是这n个人都不对这个产品感兴趣,问这个公司至少要说服几个人对该产品该兴趣才能至少收到m个人的评论. 解题分析: 直接二分答案,然后按顺序进行判断,如果ai大于当前评论的人就说服该人,这里用到了贪心的思想(本题的关键),因为说服该人能够提供评论数的贡献,所以越早做贡献能够带来更多的贡献,然后根据评论的人数与m的比较来控制二分答案的方向. #inc…
原题链接 参考自 问题描述:一个长度为3*n的01串,每次可以翻转连续的两个字符,要求至多翻转n次使得这个3*n的串至少有2*n个连续的段且相邻两端不一样(就是连续的0算一段,然后连续的1,…) 解法:每三个一组,只要能把每组分成两段而且和前面的不连着最后段数一定不小于2*n,例如前一个是1(0同理),当前组只有八种情况(冒号前表示操作前状态,冒号后表示操作后的状态): 000:011 001:001 010:010 011:011 100:010 101:101 110:101 111:001…
题意:给你两个字符串a,b,不区分大小写,将b分成三段,重新拼接,问是否能得到A: 思路:暴力枚举两个断点,然后check的时候需要字符串hash,O(1)复杂度N*N: 题目链接:传送门 #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #include<cmath> #include<string> #…
题意: 长和宽分别为M+N/2,N的矩形中.有很多敌人的点.有两种方法消灭敌人. 1.N个桶,第i个桶可以消灭i-1<=x<i中的敌人.2.M个摆(半圆)每个摆可以消灭距离他前面不超过1以内的敌人.第i个摆的圆心在(N/2,i-1),半径都为N/2. 问消灭所有敌人消耗的最少设备是多少. 题解: 根据题意可以发现,每一个敌人都可以被桶消灭,但不一定被摆消灭.摆的盲区在第1个摆的内部和第M个摆两边的死角位置. 所以出现在盲区的点必须被桶消灭.即那些桶是必选的. 其余的点把消灭他的桶号和消灭他的摆…
题目链接 题意 : 给出 N 个点(最多 1e6 )和 M 条边 (最多 N + 20 条 )要你输出一条从 1 开始回到 1 的哈密顿回路路径,不存在则输出 " There is no route, Karl! " 分析 :  题意很简单明了 众所周知,哈密顿回路是个 NP-Hard 问题 这么多个点的哈密顿回路肯定是不能暴力去寻找的 但是关注到 M ≤ N + 20 这个特殊的条件 那就说明图中肯定有很多单向链 那么这题就很明确了,就把所有的单链缩成一个点 然后再去 DFS 暴力找…
Ant Country consist of N towns.There are M roads connecting the towns. Ant Tony,together with his friends,wants to go through every part of the country. They intend to visit every road , and every road must be visited for exact one time.However,it ma…
A.The game of Osho(sg函数+二项展开) 题意: 一共有G个子游戏,一个子游戏有Bi, Ni两个数字.两名玩家开始玩游戏,每名玩家从N中减去B的任意幂次的数,直到不能操作判定为输.问谁最终能赢. 题解: GYM - 101147 A.The game of Osho #include <bits/stdc++.h> using namespace std; int t; int g; int b, n; int ans; int main() { freopen("…
题目链接:http://codeforces.com/gym/101147 2017/8/27日训练赛,题目情况9/11,Rank 4/79. A. The game of Osho 题意:定义一个子游戏,B,N可以从N减掉B^k要求B^k小于等于N,当N变成0,该哪个人选,哪个人就输了,给出G个这样的游戏,问最后的输赢情况. 解法:组合游戏,SG打表发现规律,然后求Nim和判断即可. #include <bits/stdc++.h> using namespace std; typedef…
题目链接:http://codeforces.com/gym/101147/problem/G 题意:n个人,去参加k个游戏,k个游戏必须非空,有多少种放法? 分析: 第二类斯特林数,划分好k个集合后乘以阶乘: #include <bits/stdc++.h> using namespace std; ; + 7L; long long stir[maxn][maxn]; long long fac[maxn]; void init() { fac[] = fac[] = ; ;i<=;…
题目链接:http://codeforces.com/gym/101147/problem/G G. The Galactic Olympics time limit per test 2.0 s memory limit per test 64 MB input galactic.in output standard output Altanie is a very large and strange country in Mars. People of Mars ages a lot. So…
题目链接:http://codeforces.com/gym/101147/problem/H 题解: 单纯的三维DP.可用递推或记忆化搜索实现. 学习:开始时用记忆化搜索写,dp[]初始化为0,结果一直走不出循环.后来发现:即使被搜过的位置,其值也可以是0,当再一次访问这个位置时,由于其值为0,就误以为这个位置没有搜过,于是再搜一遍.所以就不能用0来判断是否被搜索过.以后记忆化搜索就用-1来初始化dp[]吧,当然最稳的做法就是加个vis[]数组,看情况而定. 递推: #include <ios…
题目链接:http://codeforces.com/gym/101147/problem/E 题意:当人在第i个商店时,他可以向左或向右跳di段距离到达另一个商店(在范围之内),一个商店为一段距离.问:对于每一个商店,跳到最后一个商店最少需要跳几次? 题解:题目实际上是求最短距离,而且边权为1,所以可以直接用bfs.由于是求每个点到最后一个点的最短距离,那么可以反向建图,将最后一个点设为起始点,然后向前跑.对于跑不到的点,回到题目上说,实际就是这个商店不能到达最后一个商店. 代码如下: #in…
http://codeforces.com/gym/101147/problem/I I. On the way to the park time limit per test 5 seconds memory limit per test 64 megabytes input walk.in output standard output Engineers around the world share a lot of common characteristics. For example,…
http://codeforces.com/gym/100495 K题 草地的面积减去相交的面积,计算几何,垃圾题,避免不必要的计算损失精度(能约分的约分) 卡了老子一个星期了 再加前几天的一道题 这一星期真的是难受 什么都没干 AC代码 #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include…
这套题似乎是省选前做的,一直没来写题解---补上补上>_< 链接:http://codeforces.com/gym/101147 一样先放上惨不忍睹的成绩好了--- Problem A 1Y(2h52min) Problem B DNF Problem C DNF Problem D 1Y(3min) Problem E 2Y(19min) Problem F DNF Problem G 6Y(2h40min) Problem H 1Y(36min) Problem I 2Y(4h55min…
终于我也开始学博弈了,说了几个月,现在才学.学多点套路,不深学.(~~) 参考刘汝佳蓝书p132 nim游戏: 假设是两维的取石子游戏,每次可以在任意一堆拿任意数量个(至少一根,因为这样游戏的状态集有限,所以如果可以不拿的,那应该不是nim游戏了,大家都不拿,出现了bug),同时规定没有办法拿的那个人输. 那么记录状态win[i][j]表示第一堆是i个,第二堆是j个的时候,是否必胜.则win[0][0] = false win[0][1--m] = true因为可以拿走全部,使得对手走去win[…