天平(scale)

2024-02-04 09:58
文章标签 天平 scale

本文主要是介绍天平(scale),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目:你有 n 个砝码,均为 1 克,2 克或者 3 克。你并不清楚每个砝码的重量,但你知道其中一些砝码重量的大小关系。你把其中两个砝码 A 和 B 放在天平的左边,需要另外选出两个砝码放在天平的右边。

问:有多少种选法使得天平的左边重(c1)、一样重(c2)、右边重(c3)?(只有结果保证惟一的选法才统计在内)

输入
第一行包含三个正整数 n,A,B(1<=A,B<=N,A 和 B 不相等) 。

砝码编号为 1~N。以下 n 行包含重量关系矩阵,其中第 i 行第 j 个字符为加号“+”表示砝码 i 比砝码 j 重,减号“-”表示砝码 i 比砝码 j 轻,等号“=”表示砝码 i 和砝码j 一样重,问号“?”表示二者的关系未知。

存在一种情况符合该矩阵。

输出
仅一行,包含三个整数,即 c1,c2 和 c3。

样例输入
6 2 5
?+???
-?+???
?-???
???+?
???-?+
样例输出
1 4 1

这道题最开始没什么思路 后来看了题解豁然开朗,实际上就是算一个约束
算 A-B>i+j 可以化成 A-i>j-B所以这道题就是求有多少组min(A-i)>max(j-B);

上代码

#include<bits/stdc++.h>
using namespace std;
inline int read()
{int data=0;int w=1; char ch=0;ch=getchar();while(ch!='-' && (ch<'0' || ch>'9')) ch=getchar();if(ch=='-') w=-1,ch=getchar();while(ch>='0' && ch<='9') data=(data<<3)+(data<<1)+ch-'0',ch=getchar();return data*w;
}
const int N=55;
int n,A,B;
int mi[N][N],mx[N][N];
char ch[52];
int main(){n=read();A=read();B=read();for(int i=1;i<=n;i++){scanf("%s",ch+1);for(int j=1;j<=n;j++){if(ch[j]=='='||i==j) mi[i][j]=0,mx[i][j]=0;else if(ch[j]=='+'){mx[i][j]=2;mi[i][j]=1;}else if(ch[j]=='-'){mx[i][j]=-1;mi[i][j]=-2;}else if(ch[j]=='?'){mx[i][j]=2;mi[i][j]=-2;}}}for(int k=1;k<=n;k++){for(int i=1;i<=n;i++){if(i!=k){for(int j=1;j<=n;j++){if(i!=j&&i!=k) {mx[i][j]=min(mx[i][j],mx[i][k]+mx[k][j]);mi[i][j]=max(mi[i][j],mi[i][k]+mi[k][j]);}}}}}int ans1=0,ans2=0,ans3=0;for(int i=1;i<=n;i++){if(i!=A&&i!=B)for(int j=1;j<i;j++){if(j!=A&&j!=B){if(mi[A][i]>mx[j][B]||mi[B][i]>mx[j][A]) ans1++;if(mi[i][A]>mx[B][j]||mi[i][B]>mx[A][j]) ans3++;if((mi[A][i]==mx[A][i]&&mi[j][B]==mx[j][B]&&mi[A][i]==mi[j][B])||(mi[A][j]==mx[A][j]&&mi[i][B]==mx[i][B]&&mx[A][j]==mx[i][B])) ans2++;}}}printf("%d %d %d",ans1,ans2,ans3);return 0;
}

这篇关于天平(scale)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677096

相关文章

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

android xml之动画篇 alpha、scale、translate、rotate、set的属性及用法 和

1.简介 Android的补间动画TweenAnimation由四种类型组成:alpha、scale、translate、rotate,对应android官方文档地址:《Animation Resources》 逐帧动画 FrameAnimation(也称 Drawable Animation  ):animation-list alpha 渐变透明度动画效果 scale 渐变

Android AnimationDrawable资源 set[translate,alpha,scale,rotate]

本文内容摘自《疯狂Android讲义 第三版-李刚著作》 xml <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"android:duration="1000"android:fillAfter="true"android:f

CUICatalog: Invalid asset name supplied: (null), or invalid scale factor: 2.000000错误解决方案

[[UIImage imageNamed:@""] 当后面的字符串为空时,会出现题目中的错误 if (imagstr != nil) {         cell.imageView.image =[UIImage imageNamed:imagstr];     }

背包问题(天平)——POJ 1837

对应POJ题目:点击打开链接 Balance Time Limit:1000MS     Memory Limit:30000KB     64bit IO Format:%I64d & %I64u Submit  Status  Practice  POJ 1837 Description Gigel has a strange "balance" and he wa

《The Power of Scale for Parameter-Efficient Prompt Tuning》论文学习

系列文章目录 文章目录 系列文章目录一、这篇文章主要讲了什么?二、摘要中T5是什么1、2、3、 三、1、2、3、 四、1、2、3、 五、1、2、3、 六、1、2、3、 七、1、2、3、 八、1、2、3、 一、这篇文章主要讲了什么? The article “The Power of Scale for Parameter-Efficient Prompt Tuning

poj 1837 Balance(01背包 天平平衡)

题目大意: 有一个天平,天平左右两边各有若干个钩子,总共有C个钩子,有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数。 其中可以把天枰看做一个以x轴0点作为平衡点的横轴 输入: 2 4 //C 钩子数 与 G钩码数 -2 3 //负数:左边的钩子距离天平中央的距离;正数:右边的钩子距离天平中央的距离c[k] 3 4 5 8 //G个重物的质量w[i]

每日Attention学习16——Multi-layer Multi-scale Dilated Convolution

模块出处 [CBM 22] [link] [code] Do You Need Sharpened Details? Asking MMDC-Net: Multi-layer Multi-scale Dilated Convolution Network For Retinal Vessel Segmentation 模块名称 Multi-layer Multi-scale Dilate

MSRCR(Multi-Scale Retinex with Color Restore)

引言 始于Edwin Herbert Land(埃德温·赫伯特·兰德)于1971年提出的一种被称为色彩恒常的理论,并基于此理论的图像增强方法。Retinex这个词由视网膜(Retina)和大脑皮层(Cortex)合成而来.之所以这样设计,表明Land他也不清楚视觉系统的特性究竟取决于此两个生理结构中的哪一个,抑或两者都有关系。不同于传统的图像增强算法,如线性、非线性变换、图像锐化等只能增强图像

Large-Scale Relation Learning for Question Answering over Knowledge Bases with Pre-trained Langu论文笔记

文章目录 一. 简介1.知识库问答(KBQA)介绍2.知识库问答(KBQA)的主要挑战3.以往方案4.本文方法 二. 方法问题定义:BERT for KBQA关系学习(Relation Learning)的辅助任务 三. 实验1. 数据集2. Baselines3. Metrics4.Main Results 一. 简介 1.知识库问答(KBQA)介绍 知识库问答(KBQA