UESTC 878 温泉旅馆 --性质+枚举】的更多相关文章

设FA为A的牌中数字异或和,FB为B的. 则有性质: ans = (所有的(A&B=0)个数 + (FA=FB且A&B=0)的个数)/2.即所有的FA>FB的个数(除2是因为这里FA>FB的个数等于FA<FB的个数)加上FA=FB(A&B=0)的个数(除2是因为会算两次),这些情况都算A赢.(FA=FB即有FA^FB = 0)可以定义状态dp[i][s]为考虑前i个数,当前FA^FB=s的(A,B)个数.我这里是直接算的. 代码: #include <ios…
http://acm.uestc.edu.cn/#/problem/show/878 设dp[i][j][k]表示在前i个数中,第一个得到的异或值是j,第二个人得到的异或值是k的方案数有多少种. 因为异或后的大小不确定,所以不能压缩数组,但是也不大..可以过. #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm>…
状态的枚举还需多多练习啊 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<string> #include<vector> #include<stack> #include<queue> #include…
A.爱管闲事 http://www.cnblogs.com/whatbeg/p/3762733.html B.轻音乐同好会 C.温泉旅馆 http://www.cnblogs.com/whatbeg/p/3762735.html D.摩天轮 E.生日礼物 http://www.cnblogs.com/whatbeg/p/3762737.html F.神秘绑架案 http://www.cnblogs.com/whatbeg/p/3762739.html G.冬马党 http://www.cnblo…
一.枚举介绍 通常定义常量方法和枚举定义常量方法区别 public class State { public static final int ON = 1; public static final Int OFF= 0; } 第一.它不是类型安全的. 你必须确保是int,其次,你还要确保它的范围是0和1. 第二.不够直观. 很多时候你打印出来的时候,你只看到 1 和0 ,但其没有看到代码的人并不知道你的企图. 抛弃你所有旧的public static final常量 枚举是一种规范它规范了参数…
我觉得好多套路我都不会ヘ(;´Д`ヘ) 题解拖到情人节后一天才完成,还有三场没补完,真想打死自己.( ˙-˙ ) A - 温泉旅店 UESTC - 878  题意 ​ 有n张牌,两人都可以从中拿出任意张,各自的得分为他们手中牌上的数字的异或和.求A的得分小于等于B的方案数. 题解: ​ DP,\(dp[i][j][k]\)表示前i张牌,使得A得分为j,B得分为k 的案数.\(dp[0][0][0]=1\) \[ dp[i][j][k]=dp[i-1][j][k]+dp[i-1][j\wedge…
一.概述 使用此类的原因: 该类将文件或者文件夹封装成对象.方便对文件与文件夹的属性信息进行操作.File对象作为参数传递给流的构造函数.要求:使用File类的常用方法. windows平台下,目录分隔符是\,而linux下是/,在字符串中,\符号需要使用\\,第一个\起转义作用.该分隔符可以使用System.getProperty("file.separator");得到. 二.常用方法. 1.构造方法. 构造方法摘要 File(File parent, String child)…
题目链接:点击这里献出你宝贵的时间(是用来做题不是捐赠Emmmm).. Emmmm我太弱了= = 做完这题我觉得我应该去打星际..这题怎么就有重边了呢.. 这题就是一道期望= =当时考场上好像完全不会期望,dp一直也都不会推式子= = 然后就用floyd水掉了没有期望的点,分数还是太少了,最后就省二滚粗了.. 现在觉得应该在NOIP2017之前学习一下期望,然后就想起了这道题,lhr大佬之前也做了这道题但好像没做完??然后就和我一起做= =他代码跑飞快我也不知道为啥= = 好吧言归正传,这题就是…
本题题意:在一个矩阵中,去随机一点,设定一个步数K,求出从这个点可以走到的范围的和,求最大值 思路:这个范围的和是一个菱形,我们把他旋转45°,然后成为一个正放的矩阵,求出二维前缀和 然后用前缀和的性质枚举每一块矩阵的大小,更新答案 #include<cstdio> #include<algorithm> using namespace std; ; int a[maxn][maxn]; ][maxn*]; int main() { int n,m,k,x,y,xl,yl,xr,y…
大概的思路是把所有数分成质数和合数考虑 对于质数,必须找出一个很简单的完全积性函数和所求函数拟合 把所有数当做质数看待求个前缀和,然后再枚举合数的最小质因子把合数T掉 枚举到根号n,即可保证把n以内的合数都去掉了,质数已经求出来了 具体把状态设计为G(n,k)表示小于等于n的数中最小质因子大于第k个质数或本身为质数的贡献 枚举k可以只开一维数组,像一维背包一样 然后依次从G[n]中减去最小质因子等于第k个质数的即可,因为小于k的都在之前减过了 等于k的如何获得,就是小于等于n/k的数中最小质因子…