CF1776L Controllers 题解

分析

先把题目形式化。设 \(n\) 次加减中有 \(x\) 个加,\(y\) 个减,其中 \(a\) 加了 \(u\) 次,减了 \(v\) 次,显然 \(b\) 加了 \(x-u\) 次,减了 \(y-v\) 次。题目则要求 \(u\cdot a-v\cdot a+(x-u)\cdot b-(y-v)\cdot b=0\),转换一下得 \((u-v)\cdot a=-(x-y)\cdot b+(u-v)\cdot b\),把右边的 \((u-v)\cdot b\) 拎到左边,得 \((u-v)\cdot (a-b)=-(x-y)\cdot b\)。

接下来就是要解这个式子,分两种情况:

  • 当 \(a-b\) 为 \(0\) 时,\(x-y\) 必为 \(0\),否则无解。
  • 当 \(a-b\) 不为 \(0\) 时,显然 \(u-v= \dfrac {-(x-y)\cdot b }{a-b}\)。很明显,\(0 \le u \le x\),\(0 \le v \le y\),通过这两个不等式解得 \(-y \le u-v \le x\),

代码内判断这两种情况即可。

示例代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
namespace Raiden
{
int n;
signed work()
{
cin >> n;
int x = 0, y = 0;
for (int i = 1; i <= n; i++)
{
char c;
cin >> c;
if (c == '+')
{
x++;
}
else
{
y++;
}
}
int T;
cin >> T;
while (T--)
{
int a, b;
cin >> a >> b;
if (a == b)
{
if (x == y)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
continue;
}
int m = x - y;
if (b * m % (b - a))
{
cout << "NO" << endl;
continue;
}
long long k = b * m / (b - a);
if (-y <= k && k <= x)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
return 0;
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
return Raiden::work();
}

题解:CF1776L Controllers的更多相关文章

  1. ASP.NET Core 中文文档 第四章 MVC(4.1)Controllers, Actions 和 Action Results

    原文:Controllers, Actions, and Action Results 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:许登洋(Seay) Action 和 acti ...

  2. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  3. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  4. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  5. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  6. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  7. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  8. 【转】Controllers and Routers in ASP.NET MVC 3

    Controllers and Routers in ASP.NET MVC 3 ambilykk, 3 May 2011 CPOL 4.79 (23 votes) Rate: vote 1vote ...

  9. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  10. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

随机推荐

  1. Linux查看硬件信息超强命令sar,以及可视化工具ksar

    一.概述 sar(System Activity Reporter,系统活动情况报告)是Linux下系统运行状态统计工具,可从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘 ...

  2. 23. 基于Cortex-A9 uboot代码启动分析

    本篇文章是彭老师第一次在B站直播间,边直播边记录笔记,视频已经上传到B站. 现在完善整理成该篇文章,有想学习uboot启动的代码详细流程的老铁可以进入我B站空间配合视频一起学习. [视频地址] B站用 ...

  3. k8s单机部署

    一.环境 64位centos 二.安装 (1)关闭防火墙 systemctl stop firewalld systemctl disable firewalld (2)安装etcd与kubernet ...

  4. Mac安装Adobe PS_AE_PR等系列软件提示错误代码146怎么办?

    在安装Mac版Adobe系列软件的时候,不管PS.AE.PR.AI等,如果出现错误代码146,下面两个方法能够轻松解决. 解决方法一:需要我们打开「系统设置」-「隐私与安全」-「App管理」,打开「i ...

  5. PowerShell 使用

    Practice 常用命令 vim $PROFILE # 编辑配置文件 Get-ChildItem *> $null # 抛弃所有输出 whoami Remove-Item -Recurse - ...

  6. LaTeX 插入代码

    LaTeX 插入代码可以使用的宏包有 verbatim.fancyvrb.listings 以及 minted.个人最推荐使用 minted. verbatim verbatim 没有语法高亮功能,只 ...

  7. PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践

    大家好,我是码农先森. 我们在某宝或某多多上抢购商品时,如果只是下了订单但没有进行实际的支付,那在订单页面会有一个支付倒计时,要是过了这个时间点那么订单便会自动取消.在这样的业务场景中,一般情况下就会 ...

  8. div中多行内容垂直居中显示

    div中多行内容垂直居中显示 一.css 样式 .wrap { height: 200px; width: 200px; border: 1px solid #232323; display: fle ...

  9. Qt连连看(一)需求分析

    虽然开发经验并不多,但是结合以往的一点实践项目和理论学习,自认为不管是开发什么工程项目,只要遵循软件工程的构建原则,如选择一个合理的架构体系,再掌握一门语言,利用数据结构组织数据,算法实现想法和功能, ...

  10. .NET 开源工业级移动端仓库管理系统

    前言 在工业生产中,定制化的软件对于每个环节都至关重要.对于仓库管理,推荐一款开源的仓库管理系统(WMS)解决方案. 这款基于.NET 框架开发的移动应用,提供了全面的仓库操作.订单处理.主数据管理. ...