首页 > 其他分享 >题解:P10252 线性变换

题解:P10252 线性变换

时间:2024-12-12 19:32:49浏览次数:7  
标签:输出 线性变换 cout P10252 题解 times int ge

思路

好的,乍一看可以暴力枚举,但本蒟蒻不会。打这场赛时,我在上课,然后我灵机一动,如果 \(x \times a - b \ge x\) 就直接输出 \(x\),否则输出 \(x \times a - b\),结果拿了个 20 分,我也没多想。在经过一些思考和寻求帮助后,我发现,\(a = 0\) 或 \(a = 1\) 时,要有个特判:

  • \(a = 0\) 时,看看 \(x\) 和 \(-b\) 谁最小输出谁。
  • \(a = 1\) 时,如果 \(b = 0\) ,输出 \(x\),否则输出 \(x \bmod b + b\)。
  • \(x \times a - b \ge x\) 时,和上面一样,输出 \(x\)。
  • \(x \times a - b < x\) 时,刚刚我写了输出 \(x \times a - b\),对了一半,怎么回事呢,经过参考和对拍,我找到了反例,所以还要循环枚举最小值。

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int t;
    cin>>t;
    while(t--){
        long long x,a,b;
        cin>>x>>a>>b;
        if(a==0) cout<<min(x,-b)<<endl;//第一种情况
        else{
            if(a==1){//第二种情况
                if(b==0) cout<<x<<endl;
                else cout<<x%b-b<<endl;
            }else{
                if(a*x-b>=x){//第三种情况
                    cout<<x<<endl;
                }
                else{//第四种情况
                    int temp=x*a-b;
                    while(x>=0&&temp<x){
                        x=x*a-b;
                        temp=x*a-b;
                    }
                    cout<<x<<endl;
                }
            }
        }
    }
    return 0;
}

标签:输出,线性变换,cout,P10252,题解,times,int,ge
From: https://www.cnblogs.com/zhouxi2022HZO/p/18603226

相关文章

  • P1708 [入门赛 #21] 星云 hard ver. 题解
    思路看到此题,第一想到可以直接枚举,求一个数的数位之和,然后判断,可以就让方案数加一,代码如下:#include<bits/stdc++.h>usingnamespacestd;intmain(){intt;cin>>t;intn,k,cnt=0,ans;while(t--){cin>>n>>k;cnt=0;for(inti=1;......
  • 题解:P11380 [GESP202412 八级] 排队
    题目传送门题意概要有nnn个人排队,其中有mmm对人必须相邻且前......
  • 这一周的pta上碰到的疑难问题解答(上)
    1.查找指定字符输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index=下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"NotFound"。输入样例1:mprogramming输出......
  • 2023 ICPC 合肥区域赛题解 更新至 6 题(The 2023 ICPC Asia Hefei Regional Contest )
    Preface只能说阅读理解能力有待提高,\(B\)题看了半天愣是看不懂一点。只能跳了。依旧是复习篇,感觉队友当时开出来的\(dp\)难度不低,感慨张神的强大。我会在代码一些有必要的地方加上注释,签到题可能一般就不会写了.以下是代码火车头:#include<iostream>#include<algorithm>#i......
  • 题解:AT_abc193_f [ABC193F] Zebraness
    题解:AT_abc193_f[ABC193F]ZebranessTag网络流Solution我们要求相邻格子颜色不同的最多个数,可以转化为总边数减去相邻格子颜色相同的最少个数。我们发现颜色相同这一性质很难建图,所以我们将原图黑白染色,染后将黑色格子的原本颜色反转,这样就保证了原本相邻的颜色相同格子变为......
  • 数字图像处理(18):图像亮度调节:线性变换
            (1)图像亮度:反映图像的明暗程度,在图像处理中,亮度常用灰度值表示,灰度值越高,图像越亮。对图像进行亮度调节,可以改善图像的视觉效果,让图片更亮或更暗,以适应实际需求。        (2)线性亮度和对比度调节:通过对每个像素进行相同系数的增加或减少,来整体提高或降......
  • ABC381 C-E题解
    C-11/22Substring枚举每个/,从/出发向左右两边扩展到最远。因为每个点最多能被访问一次(向右只扩展2,向左只扩展1),复杂度为\(O(n)\)。intans=0;for(inti=0;i<n;i++){if(s[i]!='/')continue;intl=i-1,r=i+1,len=1;while(l>=......
  • Luogu P9606 CERC2019 ABB 题解 [ 绿 ] [ KMP ] [ 字符串哈希 ]
    ABB:KMP的做法非常巧妙。哈希思路显然正着做一遍哈希,倒着做一遍哈希,然后枚举回文中心即可。时间复杂度\(O(n)\)。代码#include<bits/stdc++.h>#definefifirst#definesesecond#definelc(p<<1)#definerc((p<<1)|1)usingnamespacestd;typedeflonglongll;......
  • ARC161F Everywhere is Sparser than Whole (Judge) 题解
    题意定义一张图的密度为它的边数与点数的比值。给定一张\(n\)个点、\(m=dn\)条边的无向图,记点集为\(V\)。你需要判断,任取\(V\)的非空真子集\(X\),\(X\)的导出子图的密度是否一定严格小于\(d\)。多测,\(1\leqn,d,\summ\leq50000\)。题解对于一张流网络,记\(s,......
  • 河南工大2024新生周赛(7)----命题人 刘义 题解
    问题A:圆:这是一个数学题,画图可得,4个圆时,分割成14个区域,可以推导出结论:当圆为0个时,区域数为1个,当圆有x个的时候,区域数有x*x-x+2;#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongintn;signedmain(){inta,b;//a为圆的个数,b为区域数cin>>......