SDUT 3568 Rock Paper Scissors 状压统计
就是改成把一个字符串改成三进制状压,然后分成前5位,后5位统计,
然后直接统计 f[i][j][k]代表,后5局状压为k的,前5局比和j状态比输了5局的有多少个人
复杂度是O(T*30000*25*m)m比较小,也就最多几十吧,将将过
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <vector>
#include <cmath>
#include <queue>
#include <map>
#include <string>
using namespace std;
typedef long long LL;
const int N=3e4+;
const int M=;
const int INF=0x3f3f3f3f;
int get(int x,int y){
int ret=;
for(int k=;k<;++k){
int dig0=x%,dig1=y%;
if(dig0==(dig1+)%)++ret;
x/=,y/=;
}
return ret;
}
vector<int> win[][M],lose[][M];
int T,cas,n,a[N][],ret[N][],f[][M][M];
char ch[];
int main(){
for(int i=;i<M;++i){
for(int j=;j<M;++j){
win[get(i,j)][i].push_back(j);
lose[get(i,j)][j].push_back(i);
}
}
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=;i<n;++i)
{
scanf("%s",ch);
for(int j=;j<;++j)
{
if(ch[j]=='R')a[i][j]=;
else if(ch[j]=='P')a[i][j]=;
else a[i][j]=;
}
}
memset(f,,sizeof(f));
memset(ret,,sizeof(ret));
for(int i=;i<n;++i)
{
int mask0=,mask1=;
for(int j=;j<;++j)mask0=mask0*+a[i][j];
for(int j=;j<;++j)mask1=mask1*+a[i][j];
for(int j=;j<=;++j)
{
for(int k=;k<lose[j][mask0].size();++k)
{
int t=lose[j][mask0][k];
++f[j][t][mask1];
}
}
}
for(int i=;i<n;++i){
int mask0=,mask1=;
for(int j=;j<;++j)mask0=mask0*+a[i][j];
for(int j=;j<;++j)mask1=mask1*+a[i][j];
for(int s0=;s0<=;++s0)
for(int s1=;s1<=;++s1){
for(int k=;k<win[s1][mask1].size();++k){
int t=win[s1][mask1][k];
ret[i][s0+s1]+=f[s0][mask0][t];
}
}
--ret[i][];
}
printf("Case #%d:\n",++cas);
for(int i=;i<n;++i){
for(int j=;j<;++j)
printf("%d ",ret[i][j]);
printf("%d\n",ret[i][]);
}
}
return ;
}
SDUT 3568 Rock Paper Scissors 状压统计的更多相关文章
- 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)
2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...
- Gym - 101667H - Rock Paper Scissors FFT 求区间相同个数
Gym - 101667H:https://vjudge.net/problem/Gym-101667H 参考:https://blog.csdn.net/weixin_37517391/articl ...
- FFT(Rock Paper Scissors Gym - 101667H)
题目链接:https://vjudge.net/problem/Gym-101667H 题目大意:首先给你两个字符串,R代表石头,P代表布,S代表剪刀,第一个字符串代表第一个人每一次出的类型,第二个字 ...
- Gym101667 H. Rock Paper Scissors
将第二个字符串改成能赢对方时对方的字符并倒序后,字符串匹配就是卷积的过程. 那么就枚举字符做三次卷积即可. #include <bits/stdc++.h> struct Complex ...
- 【题解】CF1426E Rock, Paper, Scissors
题目戳我 \(\text{Solution:}\) 考虑第二问,赢的局数最小,即输和平的局数最多. 考虑网络流,\(1,2,3\)表示\(Alice\)选择的三种可能性,\(4,5,6\)同理. 它们 ...
- 题解 CF1426E - Rock, Paper, Scissors
一眼题. 第一问很简单吧,就是每个 \(\tt Alice\) 能赢的都尽量让他赢. 第二问很简单吧,就是让 \(\tt Alice\) 输的或平局的尽量多,于是跑个网络最大流.\(1 - 3\) 的 ...
- HDOJ(HDU) 2164 Rock, Paper, or Scissors?
Problem Description Rock, Paper, Scissors is a two player game, where each player simultaneously cho ...
- HDU 2164 Rock, Paper, or Scissors?
http://acm.hdu.edu.cn/showproblem.php?pid=2164 Problem Description Rock, Paper, Scissors is a two pl ...
- 1090-Rock, Paper, Scissors
描述 Rock, Paper, Scissors is a classic hand game for two people. Each participant holds out either a ...
随机推荐
- JAVASCRIPT中的作用域和原型链,应该算是难点了,要好好多学学,练练
今天初六,要上班啦... JAVASCRIPT,看来是丢不了了.. http://www.dengdeng90.com/wordpress/?p=241 http://www.cnblogs.com/ ...
- 分享一个安装PE到硬盘的软件
Ton8pe_v5.0下载地址:http://pan.baidu.com/share/link?shareid=424350&uk=4180312589 电脑是XP,有光驱,但是没win8.1 ...
- 找啊找啊找GF
P1013 找啊找啊找GF 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 MM七夕模拟赛 描述 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手, ...
- UML建模之活动图介绍(Activity Diagram)
一.活动图的组成元素 Activity Diagram Element 1.活动状态图(Activity) 2.动作状态(Actions) 3.动作状态约束(Action Constraints) 4 ...
- [Unity菜鸟] FBX模型动画提取
角色已经人形化(Humanoid)了,那它的动画可以用在其它的模型上了也就是可以共用一套模型动画了,但是你有没有发现那动画是和fbx模型绑在一起的,没关系你可以选中这几个动画文件按Contrl+D就可 ...
- java -version
- VA对于开发QT是神器
我怎么就忘了,VA也可以适用于VS下开发QT程序.其中QT的头文件自己增加,主要是: C:\Qt\4.8.6_2008\include 但还有一些特殊类不认识,所以还得继续增加: C:\Qt\4.8. ...
- Visual Studio Support (DDEX)
原文 VS2012,VS2013,and VS2015Pro+NpgsqlDdexProvider+EFv6 how to(by @kenjiuno) Reference: #213 Overview ...
- MultiSelectListPreference 的使用心得
最近在学习Android上的开发,打算做一个app.在做之前感觉很简单的功能,自己也有几年的C++经验,应该学起来很容易.但是事实告诉我,要注意的细节还是很多的. 大部分的app都会有设置页面, 用来 ...
- 纯后台生成highcharts图片有哪些方法?
比如说,领导抛给你一个需求,把一些数据做成图表,每天通过邮件发送,让领导能在邮件中就看到图片,你会有什么思路呢?本人使用的是phantomjs这个神器,它的内核是WebKit引擎,不提供图形界面,只能 ...