【多校联合】(HDU6045)Is Derek lying?
分析
之前没有想到题目解法,看了题解才会,记录一下思考过程。
这条题目的实质是,在满足合法的情况下,有没有a和d的可行解?也就是说,不要仅仅附在表面的思考逻辑条件,而是要思考实际的数学表达。
转化为数学模型,不妨设在二人答案相同的情况下,m为都对,n为都错;不同的情况下,p为D对A错,q为D错A对,r为都错。
于是我们可以建立这样的一个方程组:
可将上式变量全部用一个变量表示出来。又由题意可知0≤m,n≤Nsame,0≤m,n≤Ndiff 从而带入不等式组,可得单个变量的取值范围,检查是否有可行解即可。
代码实现时,注意int型除法的整除给运算造成的影响,调了半天- -
代码
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int T; cin>>T;
while(T--)
{
int n,x,y;
cin>>n>>x>>y;
string a,d;
cin>>a>>d;
int same=0,diff=0;
for(int i=0;i!=n;++i)
{
if(a[i]==d[i]) same++;
else diff++;
}
double bmin=0;
bmin=max(bmin,double(same-x));
bmin=max(bmin,double(same-y));
bmin=max(bmin,double(((2*same)-x-y)/2.0));
double bmax=same;
bmax=min(bmax,double(diff-x+same));
bmax=min(bmax,double(diff-y+same));
bmax=min(bmax,double((diff+(2*same)-x-y)/2.0));
//cout<<bmin<<" "<<bmax<<endl;
if(ceil(bmin)<=floor(bmax)) cout<<"Not lying"<<endl;
else cout<<"Lying"<<endl;
}
return 0;
}
【多校联合】(HDU6045)Is Derek lying?的更多相关文章
- 2017多校联合训练2—HDU6054--Is Derek lying?(思维题)
Is Derek lying? Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- 2016暑假多校联合---Rikka with Sequence (线段树)
2016暑假多校联合---Rikka with Sequence (线段树) Problem Description As we know, Rikka is poor at math. Yuta i ...
- 2016暑假多校联合---Windows 10
2016暑假多校联合---Windows 10(HDU:5802) Problem Description Long long ago, there was an old monk living on ...
- 2016暑假多校联合---Substring(后缀数组)
2016暑假多校联合---Substring Problem Description ?? is practicing his program skill, and now he is given a ...
- 2016暑假多校联合---To My Girlfriend
2016暑假多校联合---To My Girlfriend Problem Description Dear Guo I never forget the moment I met with you. ...
- 2016暑假多校联合---A Simple Chess
2016暑假多校联合---A Simple Chess Problem Description There is a n×m board, a chess want to go to the po ...
- HDU 5792---2016暑假多校联合---World is Exploding
2016暑假多校联合---World is Exploding Problem Description Given a sequence A with length n,count how many ...
- 2016暑假多校联合---Another Meaning
2016暑假多校联合---Another Meaning Problem Description As is known to all, in many cases, a word has two m ...
- hdu 5288||2015多校联合第一场1001题
pid=5288">http://acm.hdu.edu.cn/showproblem.php?pid=5288 Problem Description OO has got a ar ...
- Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)
Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...
随机推荐
- jenkins 安装配置: centos-master windows/linux-slave + nginx代理 + node + job
centos install jenkins: 1.sudo vi /etc/yum.repos.d/jenkins.repo [jenkins] name=Jenkins baseurl=http: ...
- SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台
转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...
- Alert Log删除
标题:Renaming or Deleting the Alert Log While an Oracle Instance is Up & Running (文档 ID 74966.1) Q ...
- Oracle数据库中游标的游标的使用
本人不喜欢说概念啥的,就直接说明使用方法吧 案例1: DECALRE --声明游标 CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE ...
- 【HDOJ 1272】小希的迷宫(并查集+无环图)
描述 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道 ...
- MySQL的日志相关内容
本篇文章介绍一下mysql的备份和日志,由于备份时需要用到日志,所以在讲备份前,如果日志内容篇幅过长,将会把日志和备份分开单独来讲,先简单介绍一下mysql的日志相关内容. MySQL日志 日志是my ...
- sql sever 基础 练习题
--1. 求半径2米,高3米的圆柱体体积. declare r @hight float,@r float,@ratio float ,@ v float --声明变量 set @hight=3 -- ...
- linux服务基础之ftp服务
ftp是一种文件传输协议,我们以redhat6.9为服务器系统,来介绍一下ftp服务器,这里我们先介绍一下ftp协议工作的原理 ftp协议可以在不同类型的计算机之间传输文件,工作流程大致为 1:客户机 ...
- 部署node api的二三事
当接到node开发node api的时候,我就想用docker来部署,众所周知,node的版本更新迭代很快.很多以前需要babel后才能采用的方法正在不断被node 原生的支持.如果随便更换生产服务器 ...
- maven-生命周期与插件
Maven的生命周期是抽象的,具体的操作由插件实现,类似于java的模板设计模式. 1.生命周期 认识生命周期 maven有clean.default.site三种生命周期,每种生命周期都包含一些阶段 ...