Tozan and Gezan(x*y<a*b)
E - Tozan and Gezan
Time limit : 2sec / Memory limit : 256MB
Score : 700 points
Problem Statement
You are given sequences A and B consisting of non-negative integers. The lengths of both A and B are N, and the sums of the elements in A and B are equal. The i-th element in A is Ai, and the i-th element in B is Bi.
Tozan and Gezan repeats the following sequence of operations:
- If A and B are equal sequences, terminate the process.
- Otherwise, first Tozan chooses a positive element in A and decrease it by 1.
- Then, Gezan chooses a positive element in B and decrease it by 1.
- Then, give one candy to Takahashi, their pet.
Tozan wants the number of candies given to Takahashi until the process is terminated to be as large as possible, while Gezan wants it to be as small as possible. Find the number of candies given to Takahashi when both of them perform the operations optimally.
Constraints
- 1≤N≤2×105
- 0≤Ai,Bi≤109(1≤i≤N)
- The sums of the elements in A and B are equal.
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N
A1 B1
:
AN BN
Output
Print the number of candies given to Takahashi when both Tozan and Gezan perform the operations optimally.
Sample Input 1
2
1 2
3 2
Sample Output 1
2
When both Tozan and Gezan perform the operations optimally, the process will proceed as follows:
- Tozan decreases A1 by 1.
- Gezan decreases B1 by 1.
- One candy is given to Takahashi.
- Tozan decreases A2 by 1.
- Gezan decreases B1 by 1.
- One candy is given to Takahashi.
- As A and B are equal, the process is terminated.
Sample Input 2
3
8 3
0 1
4 8
Sample Output 2
9
Sample Input 3
1
1 1
Sample Output 3
0 题意:求满足条件x*y<a*b最多的组数,其中a,b已知。
题解:要满足<a*b,x,y中必定存在<sqrt(a*b)的数;
① 如果t2*t2==a*b,在满足a==b的条件下,因为是<a*b,所以t2*2—2,因为a,b被计算了两次;否则在t2*t2==a*b的各种情况中还存在a!=t2&&a!=b的情况,所以还要-1;
② 如果满足t2*t2为最后一组满足条件的数时,只需要-1,(重复计算了t2*t2);
③ 否则的话-2(即在分别为a和b的条件时的两种情况; AC代码:
//#include <bits/stdc++.h>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#define N 500005
#define mem(a,b) memset(a,b,sizeof(a))
#define IOS ios::sync_with_stdio(false)
#define INF 0x3f3f3f3f
#define MOD 998244353
#define Mod 1e9 + 7
template<typename T> inline T max(T a,T b,T c){
return max(a,max(b,c));
}
template<typename T> inline T min(T a,T b,T c){
return min(a,min(b,c));
}
template<typename T> inline T max(T a,T b,T c,T d){
return max(a,max(b,c,d));
}
template<typename T> inline T min(T a,T b,T c,T d){
return min(a,min(b,c,d));
}
const int dx[]={,,,-,,,-,,-};
const int dy[]={,,,,-,,-,-,};
typedef long long ll;
using namespace std;
int main(){
ll n,a,b;
scanf("%lld",&n);
for (int i=;i<=n;i++){
scanf("%lld%lld",&a,&b);
ll t1=a*b;
ll t2=sqrt(t1);
if (t2*t2==t1){
if (a==b) printf("%lld\n",t2*-);
else printf("%lld\n",t2*-);
}
else if (t2*(t2+)<t1) printf("%lld\n",t2*-);
else printf("%lld\n",t2*-);
}
return ;
}
Tozan and Gezan(x*y<a*b)的更多相关文章
- 给定n,求1/x + 1/y = 1/n (x<=y)的解数~hdu-1299~(分解素因子详解)
链接:https://www.nowcoder.com/acm/contest/90/F来源:牛客网 题目描述 给定n,求1/x + 1/y = 1/n (x<=y)的解数.(x.y.n均为正整 ...
- 青蛙的约会 扩展欧几里得 方程ax+by=c的整数解 一个跑道长为周长为L米,两只青蛙初始位置为x,y;(x!=y,同时逆时针运动,每一次运动分别为m,n米;问第几次运动后相遇,即在同一位置。
/** 题目:青蛙的约会 链接:https://vjudge.net/contest/154246#problem/R 题意:一个跑道长为周长为L米,两只青蛙初始位置为x,y:(x!=y,同时逆时针运 ...
- 省赛i题/求1~n内所有数对(x,y),满足最大公约数是质数的对数
求1~n内所有数对(x,y),gcd(x,y)=质数,的对数. 思路:用f[n]求出,含n的对数,最后用sum[n]求和. 对于gcd(x,y)=a(设x<=y,a是质数),则必有gcd(x/a ...
- 省赛i题/求1~n内全部数对(x,y),满足最大公约数是质数的对数
求1~n内全部数对(x,y),gcd(x,y)=质数,的对数. 思路:用f[n]求出,含n的对数.最后用sum[n]求和. 对于gcd(x,y)=a(设x<=y,a是质数),则必有gcd(x/a ...
- X分钟速成Y (其中Y=Python3)
# 用井字符开头的是单行注释 """ 多行字符串用三个引号 包裹,也常被用来做多 行注释 """ ##################### ...
- 已知(x,y,z,yaw,pitch,roll)如何得到4*4的转换矩阵?
作者:Nicholas链接:https://www.zhihu.com/question/41514206/answer/104827395来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- IOS 封装View的fram(X Y W H )
@interface UIView (Extension) @property (nonatomic, assign) CGFloat x; @property (nonatomic, assign) ...
- 最小二乘求解常数k使得kx=y(x,y为列向量)
直接求解法 取范数 \[ E(k)=\|kx-y\|^{2}\\ \] 构建最小二乘得出 \[ \arg \min (E(k))=k^2x^Tx+y^Ty-2x^Tyk \] 对k求导有 \[ 2x^ ...
- 中心极限定理(为什么y服从高斯分布)
因为每一条数据都服从IID原则: 根据中心极限定理,当数据增加的时候,样本均值的分布慢慢变成正态分布 不管分布式什么分布,累加起来都是高斯分布 As sum increases, sum of non ...
随机推荐
- 豆瓣爬虫Scrapy“抄袭”改写
主要是把项目从docker里面扒拉出来,但是扒拉完好像又没有什么用,放在docker里面运行多好. 源码下载下面主要记一下改动的地方吧. 配置:在database.py中改掉自己的数据库配置. 表结构 ...
- py02_01:初识模块
模块的定义:模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能.(可以理解为:库) 模块分为三类 ( 1. 标准库: 直接导入使用 ...
- 注册登录页面修订-Python使用redis-手机验证接口-发送短信验证
登录页面修订 views.Login.vue <template> <div class="login box"> <img src="@/ ...
- ios avplayer 监控播放进度
var timeObserver = avPlayerVC.player?.addPeriodicTimeObserver(forInterval: CMTime.init(value: , ti ...
- iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
iOS精选源码 APP启动视频 自定义按钮,图片可调整图文间距SPButton 一款定制性极高的轮播图,可自定义轮播图Item的样式(或只... iOS 筛选菜单 分段选择器 仿微信导航栏的实现,让你 ...
- 吴裕雄--天生自然TensorFlow高层封装:Keras-返回值
# 1. 数据预处理. import keras from keras.models import Model from keras.datasets import mnist from keras. ...
- b+树的原理
Java 内存区域<ignore_js_op>Heap线程公有存放实例对象是GC主要管理区域,因此可以更细致的划分为:新生代.老年代再细致一点划分:Eden区.From Survivor区 ...
- php 连接oracle插入多张图片的方法
php连接oracle数据库的时候,其查询.更新.删除数据和MySQL类似,但是增加数据.特别是图片的时候就很不一样,这里面涉及到要创建一个blob对象,用blod对象去保存php图片,下面是当插入多 ...
- 能够伪装为 win 10 的 kali 体验与中文设置
前言 作为习惯性捣鼓各类操作系统,时长也会使用 Kali 系统,之前看到有新的版本发行 传闻这个版本和之前的版本在系统界面和壁纸上都做了更新,还能一键设置 win 10 的系统界面 对此决定下载体验一 ...
- rework-发出你的心声
生意人虚张声势的时候会给人什么感觉?都是些僵硬的措辞.官方的腔调.虚伪的友善.法律术语等.你一定看过这些玩意儿,就好像是机器人写出来的东西,这些公司在向你发话,而不是和你对话. 这种专业主义面具让人觉 ...