【Link】:

【Description】



两个人都做了完全一样的n道选择题,每道题都只有’A’,’B’,’C’

三个选项,,每道题答对的话得1分,答错不得分也不扣分,告诉你两个人全部n道题各自选的是什么,问你第一个人得X分,第二个人得Y分可不可能?

【Solution】



我们可以倒着想这个问题;

第一个人答对一题,就让X减去1

第二个人答对一题,就让Y减去1

只要能让X和Y都变成0,那就可以了,因为剩余的题目,不管两个人答案

是什么,都可以让他们俩都错.

设xt,bxt是两人所有的题答案相同和不相同的题目个数;

则想让X和Y快速都变成0,最快的方法就是,答案相同的地方都对.

但不能变成负数;

则设temp = min(x,y);

x-=min(temp,xt) y-= min(temp,xt);

如果x和y还是不都为0;

(这个时候答案相同的题目已经不能用了,因为对只能同时对)

(或者,干脆就是答案相同的题目不够用了)

则需要用答案不相同的题目来填了;

这个时候,就只能一个一个的减了,不可能x和y同时减;

(因为一个人对了,另外一个人就错了)

则这个时候,需要看看bxt是否大于等于剩余的x+y;

这样才够x和y都变成0;

如果不够的话,就Impossible

够的话,就Possible(其他题目,就直接算他们俩都错)



【NumberOf WA】



0



【Reviw】



不难



【Code】

#include <bits/stdc++.h>
#define int long long
using namespace std; int T,n,x,y;
char s1[(int)8e4+10],s2[(int) 8e4+10]; main(){
scanf("%lld",&T);
while (T--){
scanf("%lld%lld%lld",&n,&x,&y);
scanf("%s",s1+1);
scanf("%s",s2+1);
int xt = 0,bxt = 0;
for (int i = 1;i <= n;i++)
if (s1[i]!=s2[i])
bxt++;
else
xt++;
int temp = min(x,y);
x-=min(temp,xt),y-=min(temp,xt);
bxt-=x,bxt-=y;
if (bxt<0){
puts("Lying");
}
else
puts("Not lying");
}
return 0;
}

最新文章

  1. js之oop &lt;三&gt;属性标签
  2. PHP cURL应用实现模拟登录与采集使用方法详解
  3. phpwind的rewrite重写原理
  4. 第三十二课:JSDeferred的性能提速
  5. Linux应用总结:自动删除n天前日志
  6. jQuery Validate 插件[表单验证]
  7. 笔记-动画篇-layout动画初体验
  8. 7款纯CSS3实现的炫酷动画应用|慕课网只学有用的!
  9. 几道C语言的题目!
  10. HDU-2298 Toxophily (三分法入门系列)
  11. accept 文件描述符用尽处理
  12. 创建ajax的步骤
  13. C#如何调用以管理员身份运行的cmd命令提示符
  14. 将excel数据分块多线程导入
  15. hadoop day 1
  16. 《算法》第四章部分程序 part 7
  17. 3D Touch开发技巧的笔记
  18. fastcgi模式下设置php最大执行时间
  19. oracle基本查询入门(二) 子查询
  20. 使用Java配置SpringMVC

热门文章

  1. 隐藏div,文本框角圆滑,消除外边框
  2. php八大设计模式之简介篇
  3. iOS——集成支付宝 系统繁忙,请稍后再试ALI40247
  4. JAVA版本区块链钱包核心代码
  5. CF983E NN country(倍增,差分)
  6. 题解 P3605 【[USACO17JAN]Promotion Counting晋升者计数】
  7. 【ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) B】Recursive Queries
  8. 钩子(hooks)—webhook-使用钩子自动触发部署
  9. android自己定义刷新类控件
  10. Android4.42-Settings源代码分析之蓝牙模块Bluetooth(上)