GYM - 101147 A.The game of Osho】的更多相关文章

题意: 一共有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…
题意: 一个人从城市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…
题意: 给出一颗有点权和边权的树.求每一个点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坐…
题意: 长和宽分别为M+N/2,N的矩形中.有很多敌人的点.有两种方法消灭敌人. 1.N个桶,第i个桶可以消灭i-1<=x<i中的敌人.2.M个摆(半圆)每个摆可以消灭距离他前面不超过1以内的敌人.第i个摆的圆心在(N/2,i-1),半径都为N/2. 问消灭所有敌人消耗的最少设备是多少. 题解: 根据题意可以发现,每一个敌人都可以被桶消灭,但不一定被摆消灭.摆的盲区在第1个摆的内部和第M个摆两边的死角位置. 所以出现在盲区的点必须被桶消灭.即那些桶是必选的. 其余的点把消灭他的桶号和消灭他的摆…
题意: 大矩形代表市场,大矩形当中有很多小矩形样式的伞.这些小矩形都贴着大矩形的左边或者右边且互不相交.小矩形以外的地方都是阳光.求经过大矩形时在阳光下的最短时间. 题解: 最短路的做法.起点和终点与每个矩形之间连边,每两个矩形之间也连边. 矩形之间两边有三种情况:1.两个矩形在同一边(k值相等)或两个矩形的宽度和大于(不能大于等于)大矩形的宽度 2.两个矩形的长度区间不相交(a[i].h+a[i].d<a[j].d||a[j].h+a[j].d<a[i].d) 3.长度区间相交 #inclu…
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/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…