解题报告-P12022 [USACO25OPEN] Hoof Paper Scissors Minus One B

news/2025/9/19 17:30:47/文章来源:https://www.cnblogs.com/Starpop/p/19101342

P12022 [USACO25OPEN] Hoof Paper Scissors Minus One B

题目描述

在一局蹄子剪刀布游戏中,Bessie 和 Elsie 可以出 \(N\)\(1 \leq N \leq 3000\))种不同的蹄子手势,编号为 \(1\dots N\),每个手势对应一种不同的材料。不同材料之间的相互关系有一个复杂的表格,基于该表格,可能会:

  • 一种手势获胜,另一种失败。
  • 两种手势平局。

蹄子剪刀布-1.0 的规则类似,但 Bessie 和 Elsie 可以各自出两个手势,每只蹄子出一个。在观察到她们所出的四个手势后,她们各自选择其中一个手势进行游戏。结果根据正常的蹄子剪刀布的规则决定。

给定 Elsie 计划在每局游戏中出的 \(M\)\(1 \leq M \leq 3000\))个手势组合,Bessie 想知道有多少种不同的手势组合可以确保战胜 Elsie。一个手势组合定义为一个有序对 \((L,R)\),其中 \(L\) 为奶牛用左蹄出的手势,\(R\) 为奶牛用右蹄出的手势。你能为每局游戏进行计算吗?

输入格式

输入的第一行包含两个空格分隔的整数 \(N\)\(M\),表示蹄子手势的数量,以及 Bessie 与 Elsie 进行的游戏局数。
以下 \(N\) 行,第 \(i\) 行由 \(i\) 个字符 \(a_{i,1}a_{i,2}\ldots a_{i,i}\) 组成,其中 \(a_{i,j} \in \{\texttt D,\texttt W,\texttt L\}\)。如果 \(a_{i,j} = \texttt D\),则手势 \(i\) 平于手势 \(j\)。如果 \(a_{i,j} = \texttt W\),则手势 \(i\) 胜于手势 \(j\)。如果 \(a_{i,j} = \texttt L\),则手势 \(i\) 负于手势 \(j\)。输入保证 \(a_{i,i} = \texttt D\)

以下 \(M\) 行,每行包含两个空格分隔的整数 \(s_1\)\(s_2\),其中 \(1 \leq s_1,s_2 \leq N\),表示 Elsie 在该局游戏中的手势组合。

输出格式

输出 \(M\) 行,其中第 \(i\) 行包含在第 \(i\) 局游戏中 Bessie 可以确保战胜 Elsie 的手势组合数量。

输入输出样例 #1

输入 #1

3 3
D
WD
LWD
1 2
2 3
1 1

输出 #1

0
0
5

说明/提示

在样例 1 解释:这对应于原始的蹄子剪刀布,我们可以设蹄子为 \(1\),布为 \(2\),剪刀为 \(3\)。布战胜蹄子,蹄子战胜剪刀,剪刀战胜布。Bessie 无法确保战胜蹄子 + 布或布 + 剪刀的组合。然而,如果 Elsie 出蹄子 + 蹄子,Bessie 可以采用以下任一组合进行反击。

  • 布 + 布
  • 布 + 剪刀
  • 布 + 蹄子
  • 蹄子 + 布
  • 剪刀 + 布

如果 Bessie 出这些组合中的任意一个,她可以确保通过出布来获胜。

  • 测试点 \(2\sim 6\)\(N,M\le 100\)

  • 测试点 \(7\sim 12\):没有额外限制。


解题报告

很简单的一道题。

显然,如果 Bessie 要确保战胜 Elsie,当且仅当 Bessie 出的手势组合中至少有一个手势能够同时战胜 Elsie 手势组合中的所有手势

统计这样的手势,设其数量为 \(cnt\),那么显然每一个同时得胜手势可以和任意一个手势组合,共 \(n \times cnt\) 种。

同时根据样例解释,每一对手势是有序对,所以应该 \(\times 2\),变为 \(2 \times n \times cnt\)

但是,对于每一对由两个同时得胜手势(可以相同)组成的组合,这样算会多算一次,还要 \(-cnt^2\)

代码如下:

#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
const int N=3011;#define ckmax(x,y) ( x=max(x,y) )
#define ckmin(x,y) ( x=min(x,y) )inline int read()
{int f=1,x=0; char ch=getchar();while(!isdigit(ch)) { if(ch=='-') f=-1; ch=getchar(); }while(isdigit(ch))  { x=x*10+ch-'0';    ch=getchar(); }return f*x;
}int n,m;
int a[N][N];signed main()
{n=read(),m=read();for(int i=1;i<=n;i++)for(int j=1;j<=i;j++){char ch;cin>>ch;if(ch=='W') a[i][j]=+1,a[j][i]=-1;if(ch=='L') a[i][j]=-1,a[j][i]=+1;}while(m--){int u=read(),v=read(),ans=0;for(int i=1;i<=n;i++)ans+=( a[i][u]>0 && a[i][v]>0 );printf("%d\n",ans*(2*n-ans));}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用指南:前端Form表单提交后跳转到指定页面

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

CentOS架构修改网卡命名的方法总结

CentOS架构修改网卡命名的方法总结pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&…

主流的开源协议(MIT,Apache,GPL v2/v3) - 实践

主流的开源协议(MIT,Apache,GPL v2/v3) - 实践2025-09-19 17:29 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displ…

np.clip的使用

np.clip() 是 NumPy 中一个非常实用的函数,用于将数组中的值裁剪(或者说限制)在一个指定的区间内。 它的作用就像一把剪刀,把数组中所有超出规定范围的数值都剪掉,让它们回到这个范围的边缘。 np.clip() 的基本用…

重看P4211 [LNOI2014] LCA 以及 P5305 [GXOI/GZOI2019] 旧词 题解

P4211 [LNOI2014] LCA P5305 [GXOI/GZOI2019] 旧词 重看 P4211 求 \(\sum_{i=l}^{r} dep[LCA(i,x)]\),首先把 LCA 都求出来行不通,我们考虑转化计算贡献的形式,一个点的深度就是根到它的路径上的点的个数,两个点的…

25.9.19随笔联考总结

考试 通读题面,决定顺序开题。很快做出 T1,感觉 T2T3 都可做,优势在我!各想一个小时未果,T4 也不会,坠机。赛后得知后三道都是 NOI 难度的题。 估计:100+0+0+0。实际:100+0+0+0。 总结 面对一些神秘题的时候还…

解题报告-P12025 [USACO25OPEN] Sequence Construction S

P12025 [USACO25OPEN] Sequence Construction S 题目描述 最近,农夫约翰农场里的奶牛们迷上了观看《炼乳神探》这档节目。节目讲述了一头聪明的奶牛侦探CowCow解决各类案件的故事。贝茜从节目中发现了新的谜题,但答案…

解题报告-P12026 [USACO25OPEN] Compatible Pairs S

P12026 [USACO25OPEN] Compatible Pairs S 题目描述 在遥远的乡村,农夫约翰的奶牛并非普通的农场动物——它们隶属于一个秘密的奶牛情报网络。每头奶牛都有一个由精英密码学家精心分配的ID号码。但由于农夫约翰随意的…

深入解析:Xilinx Video Mixer

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

maxu

https://v1.paoliangcloud.com/publicwowo.html?to=85ed9abcfe82``

makefile 入门1

makefile 入门1目标 目标的语法非常简单targets: prerequisitesrecipes... 或者 targets: prerequisites ; recipesrecipes...当执行目标时,make会检测prerequisites中的所有文件是否存在,如果都存在则执行targets后…

详细介绍:【 C/C++ 算法】入门动态规划-----一维动态规划基础(以练代学式)

详细介绍:【 C/C++ 算法】入门动态规划-----一维动态规划基础(以练代学式)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

iOS 26 能耗检测实战指南 如何监测 iPhone 电池掉电、Adaptive Power 模式效果与后台耗能问题(uni-app 与原生 App 优化必看)

本文结合 iOS 26 新增的 Adaptive Power 模式与电池界面功能,介绍如何检测 iPhone 能耗问题(包括启动耗电、后台耗电、动画特效与资源加载耗电等),并结合 Instruments、克魔等工具给出 uni-app 项目的实战优化指南…

Transformer的个人理解

Transformer工作原理 分词 文本进来之后,首先经过Tokenizer(分词器)分割成很多个token。每个token都会赋予一个从0开始的ID,用于后续索引。 然后通过一个embedding层,将token转换成一个多维向量,也叫做embedding…

国标GB28181平台EasyGBS如何实现企业园区视频监控一体化管理?

国标GB28181平台EasyGBS如何实现企业园区视频监控一体化管理?企业园区安防系统面临多品牌设备兼容难、系统孤立、管理效率低等痛点。本文详细探讨基于国标GB28181协议的EasyGBS视频平台如何为企业园区提供完整的视频监…

360环视硬件平台为什么推荐使用米尔RK3576开发板?

在汽车智能化和智慧安防快速发展的今天,360环视系统 已成为保障行车与场景安全、提升体验的重要技术。无论是自动泊车、驾驶辅助,还是智慧社区监控,核心诉求都是能够接入 多路摄像头,并通过高效的 推流 实现低延迟…

C语言弱函数

C语言弱函数project/ ├── core/ │ └── system_init.c // 核心框架代码,包含弱函数 ├── boards/ │ └── my_board.c // 板级特定代码,提供强函数 └── main.c // 主程序 /…

高质量票据识别数据集:1000张收据图像+2141个商品标注,支持OCR模型训练与文档理解研究

​获取更多高质量数据集,请访问典枢数据交易平台:https://dianshudata.com/引言与背景 在数字化转型的浪潮中,票据识别技术已成为金融、零售、餐饮等行业自动化处理的核心技术。传统的票据处理依赖人工录入,效率低…

1202_InnoDB中一条UPDATE语句的执行流程

InnoDB中一条UPDATE语句的执行流程可以概括为以下步骤和图示:下面是每个步骤的详细说明: 第一步:连接器与权限验证 (Client → Server Layer)建立连接:客户端应用程序(如Java程序、MySQL CLI)与MySQL服务器建立连…

1201_mysql查询语句select执行流程

查询语句select执行流程,如下图所示,其核心流程可概括为: flowchart TD A["客户端提交 SELECT 语句"] --> B["连接器<br>管理连接, 权限验证"] B --> C["查询缓存<br>(…