传送门 :
A - AvtoBus题意 : 给定一个数 n n n,询问 a ∗ 4 + b ∗ 6 = n a*4+b*6=n a∗4+b∗6=n其中 a + b a+b a+b的最大最小值
思路 :
a ∗ 4 + b ∗ 6 = n 6 ∗ ( a + b ) = ( n + 2 ∗ a ) ( a + b ) = n + 2 ∗ a 6 同 理 可 得 ( a + b ) = n − 2 ∗ b 4 \begin{aligned} & a*4+b*6=n\\ & 6*(a+b)=(n+2*a)\\ & (a+b)=\frac{n+2*a}{6}\\ & \ \ \ \ \ \ \ \ \ 同理可得\\ &(a+b)=\frac{n-2*b}{4} \end{aligned} a∗4+b∗6=n6∗(a+b)=(n+2∗a)(a+b)=6n+2∗a 同理可得(a+b)=4n−2∗b
因此我们可以得知
- n n n是奇数的时候无解
- 特判 n = 2 n=2 n=2
显然的最小值就是 n + 2 ∗ a = = n n+2*a==n n+2∗a==n的时候,当然需要判断是否能够整除
最大值就是 n − 2 ∗ b = = n n-2*b==n n−2∗b==n的时候,因为除法本身就有向下取整,因此无需特判
code :
void solve(){
ll n;cin>>n;
if(n%2 || n == 2){
cout>x;
total = x*n;
pre = x;
mp.clear();
}
cout>op;
if(op == 1){
int x,y;cin>>x>>y;
if(stx[x] == 0) add(Tx,x,1);
if(sty[y] == 0) add(Ty,y,1);
stx[x]++;
sty[y]++;
}else if(op == 2){
int x,y;cin>>x>>y;
stx[x] -- ;
sty[y] -- ;
if(stx[x] == 0)add(Tx,x,-1);
if(sty[y] == 0)add(Ty,y,-1);
}else {
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
int totalx = query(Tx,x2) - query(Tx,x1-1);
int totaly = query(Ty,y2) - query(Ty,y1-1);
if(totalx >= x2 - x1+1) cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?