一眼题。

第一问很简单吧,就是每个 \(\tt Alice\) 能赢的都尽量让他赢。

第二问很简单吧,就是让 \(\tt Alice\) 输的或平局的尽量多,于是跑个网络最大流。\(1 - 3\) 的点表示 \(\tt Alice\) 选石头剪刀或布,\(4-6\) 表示\(\tt Bob\) 选石头剪刀或布。显然源点连 \(1-3\), \(4-6\) 连汇点。然后把 \(\tt Alice\) 输或 \(\tt Alice\) 平的连一下就好了呀。

#include<bits/stdc++.h>
#define N 100010
#define inf 0x7ffffff
#define L(i, j, k) for(int i = j; i <= k; i++)
#define R(i, j, k) for(int i = j; i >= k; i--)
using namespace std;
int n,m,s,t,sum,cc[N],use[N];
int head[N],last[N];
struct node{
int to,next,val;
} e[N << 1];
int edge_id = 1;
void add_edge(int x, int y, int val) {
int id = ++edge_id;
if(head[x]==0) head[x] = id;
else e[last[x]].next=id;
last[x]=id,e[id].val=val,e[id].to=y;
}
void add(int x, int y, int val) {
add_edge(x, y, val);
add_edge(y, x, 0);
}
void bfs() {
for(int i = 1; i <= n; i++) use[i]=cc[i]=0;
cc[s]=1,use[1]=s;
int u=0,v=1;
while(u<v) {
++u;
int fst=use[u];
for(int i = head[fst]; i != 0; i = e[i].next) {
if(cc[e[i].to]!=0) continue;
if(e[i].val==0) continue;
++v,cc[e[i].to]=cc[fst]+1,use[v]=e[i].to;
}
}
}
int dfs(int x,int val) {
if(x==t) return val;
if(cc[x]==cc[t]) {
cc[x]=0;
return 0;
}
int yuliu=val;
for(int i = head[x]; i != 0; i = e[i].next) {
if(cc[e[i].to]!=cc[x]+1) continue;
int addd=dfs(e[i].to,min(e[i].val,yuliu));
yuliu -= addd , e[i].val -= addd , e[i^1].val += addd;
}
return val-yuliu;
}
void Dinic(int &ans) {
bfs();
int addd=dfs(s,inf);
ans += addd;
if(addd==0) return;
Dinic(ans);
}
int pn, A[4], B[4];
int main() {
n = 8, m = 12, s = 7, t = 8;
scanf("%d", &pn);
L(i, 1, 3) scanf("%d", &A[i]), add(s, i, A[i]);
L(i, 1, 3) scanf("%d", &B[i]), add(i + 3, t, B[i]);
L(i, 1, 3) add(i, i + 3, 1e9);
L(i, 1, 3) add(i, (i + 1) % 3 + 4, 1e9);
Dinic(sum);
printf("%d ", pn - sum);
printf("%d\n", min(A[1], B[2]) + min(A[2], B[3]) + min(A[3], B[1]));
return 0;
}

题解 CF1426E - Rock, Paper, Scissors的更多相关文章

  1. 【题解】CF1426E Rock, Paper, Scissors

    题目戳我 \(\text{Solution:}\) 考虑第二问,赢的局数最小,即输和平的局数最多. 考虑网络流,\(1,2,3\)表示\(Alice\)选择的三种可能性,\(4,5,6\)同理. 它们 ...

  2. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  3. SDUT 3568 Rock Paper Scissors 状压统计

    就是改成把一个字符串改成三进制状压,然后分成前5位,后5位统计, 然后直接统计 f[i][j][k]代表,后5局状压为k的,前5局比和j状态比输了5局的有多少个人 复杂度是O(T*30000*25*m ...

  4. FFT(Rock Paper Scissors Gym - 101667H)

    题目链接:https://vjudge.net/problem/Gym-101667H 题目大意:首先给你两个字符串,R代表石头,P代表布,S代表剪刀,第一个字符串代表第一个人每一次出的类型,第二个字 ...

  5. Gym - 101667H - Rock Paper Scissors FFT 求区间相同个数

    Gym - 101667H:https://vjudge.net/problem/Gym-101667H 参考:https://blog.csdn.net/weixin_37517391/articl ...

  6. Gym101667 H. Rock Paper Scissors

    将第二个字符串改成能赢对方时对方的字符并倒序后,字符串匹配就是卷积的过程. 那么就枚举字符做三次卷积即可. #include <bits/stdc++.h> struct Complex ...

  7. HDOJ(HDU) 2164 Rock, Paper, or Scissors?

    Problem Description Rock, Paper, Scissors is a two player game, where each player simultaneously cho ...

  8. HDU 2164 Rock, Paper, or Scissors?

    http://acm.hdu.edu.cn/showproblem.php?pid=2164 Problem Description Rock, Paper, Scissors is a two pl ...

  9. 1090-Rock, Paper, Scissors

    描述 Rock, Paper, Scissors is a classic hand game for two people. Each participant holds out either a ...

随机推荐

  1. 利用c++ std::getline实现split

    getline reads characters from an input stream and places them into a string: getline从输入流中读取字符, 并把它们转 ...

  2. python之路 《四》 字典

    python中的字典使得python来解决问题变得更方便,顾名思义,就是当我知道关键字(key)那么我就可以通过key来找到与之对应的信息. 简单的来说字典是另一种可变容器模型,且可存储任意类型对象. ...

  3. 在线动态修改ulimit

    前言 系统中有些地方会进行资源的限制,其中的一个就是open file的限制,操作系统默认限制的是1024,这个值可以通过各种方式修改,本篇主要讲的是如何在线修改,生产上是不可能随便重启进程的 实践 ...

  4. inkscope完整安装配置

    准备centos7基础系统 首先安装基础系统centos7 在安装选项那里选择base web server ,选择其他的也可以,选择mini安装会缺很多常用的软件包,后续需要一个个安装比较麻烦 关闭 ...

  5. flink1.10版local模式提交job流程分析

    1.WordCount程序实例 2.本地监听9000端口后测试结果 3.job提交流程 4.local模式执行StreamGraph任务 5.流程分析 flink job提交流程个人理解可以大致分为定 ...

  6. 没找到Wkhtmltopdf,报表会被显示为html

    windows10 odoo 打印报表时提示 没找到Wkhtmltopdf,报表会被显示为html 现象 原因 没有安装Wkhtmltopdf,没有配置环境变量,odoo在电脑系统中找不到Wkhtml ...

  7. C语言设计模式(应用)

    #ifndef QUEUE_H #define QUEUE_H #define QUEUE_SIZE 10 typedef struct queue { int buffer[QUEUE_SIZE]; ...

  8. 存储型跨站获取COOKIE漏洞复现

    一.漏洞描述 获取网站cookie 二.漏洞原理 1.服务器后台写入PHP代码 $cookie = $_GET['cookie']; if($cookie){ echo ($cookie); $log ...

  9. 计算思维(美国CMU周以真教授)

    博主注:GIScience会议是国际上最为著名的地理信息系统领域的国际会议,自2000年起,每两年举办一次,GIScience 2008会议邀请了美国卡内基-梅隆大学(CMU)计算机系华裔教授周以真博 ...

  10. jQuery 第二章 实例方法 DOM操作选择元素相关方法

    进一步选择元素相关方法:  .get() .eq() .find() .filter() .not() .is() .has() .add()集中操作  .end()回退操作 .get() $(&qu ...