题解:CF1776L Controllers
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的更多相关文章
- ASP.NET Core 中文文档 第四章 MVC(4.1)Controllers, Actions 和 Action Results
原文:Controllers, Actions, and Action Results 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:许登洋(Seay) Action 和 acti ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- 【转】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 ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
随机推荐
- AOP(代理模式)
利用特性Attribute+反射+代理类实现AOP 一.定义自定义特性 /// <summary> /// 自定义特性,方法执行前调用 /// </summary> publi ...
- shell 删除文件内容Mac、Linux兼容方法
# 定义sedi数组 # Linux sed后面, 用 "-i" sedi=(-i) case "$(uname)" in Darwin*) # Mac sed ...
- 猜数游戏[USACO2008] Haybale Guessing G
$ Haybale \ Guessing \ G $ (猜数游戏) 解题报告 \(Diffculty:\) \(\color{purple}省选/NOI-\) 传送门1:(HZOIER) 传送门2:( ...
- 玩客云安装hassio
docker版 安装hass镜像,首次安装比较慢 需要等几分钟启动(10分钟左右) docker run -d --restart=always --name="home-assistant ...
- Xmind 8思维导图(含补丁)
Xmind 8思维导图(含补丁) 什么是思维导图? 如何下载Xmind8 Xmind 8软件简单使用 获取Xmind 8 补丁 什么是思维导图? 数据结构.电路模拟等学习路线,老师都有叫画思维导图,那 ...
- Maven 项目 有Dependencies, 使用时无法引用,爆红
1. 找到本地的该依赖的文件夹,将里面的.lastUpdated文件删除 2. IDEA清缓存重启
- 忘记 mysql 8.0 root 密码 怎么修改
本文copy自 Centos7重置Mysql 8.0.1 root 密码 问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码:找了网上好多资料都不尽相同,根据自己的 ...
- 消息队列的对比测试与RocketMQ使用扩展
消息队列的对比测试与RocketMQ使用扩展 本文的主要内容包括以下几个方面: 原有的消息技术选型 RocketMQ与kafka 测试对比 如何构建自己的消息队列服务 RocketMQ扩展改造 ...
- Angular 18+ 高级教程 – Component 组件 の Query Elements
前言 Angular 是 MVVM 框架. MVVM 的宗旨是 "不要直接操作 DOM". 在 Component 组件 の Template Binding Syntax 文章中 ...
- TypeScript 学习笔记 – Handbook 1
前言 一转眼, 一年多没有写 TypeScript 了. 最近又要开始写了, 乘此机会打算系统学习一下, 顺便写一个学习笔记. 我接触 TypeScript 比较早, 那是 Angular 2 bet ...