1 条题解

  • 0
    @ 2025-8-24 22:40:04

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar dottle
    Cy@?g|^a

    搬运于2025-08-24 22:40:04,当前版本为作者最后更新于2022-09-05 19:13:51,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    如果说我们有 22 个不同的数可以用来操作,那么无论当前的 xx 是多少,都总有一个数操作以后不会使 xx 变为 00。这时候答案就一定是 Yes

    接下来的问题就变成了,如果所有数都相同,是否能进行 1010010^{100} 次操作。如果初始的 xxa1a_1 符号相同,那么无论如何 xx 都不会变成 00;如果 xx 不是 a1a_1 的倍数,那么 xx 也不可能变成 00。这两个情况答案都是 Yes。对于剩下的情况,即 xxa1a_1 符号相反,且 xxa1a_1 的倍数,答案就是 No 了。

    时间复杂度 O(n)O(n)

    #include<bits/stdc++.h>
    using namespace std;
    
    void solve(){
    	int n,x;cin>>n>>x;
    	int first;cin>>first;
    	int flag=0;
    	for(int i=2;i<=n;i++){
    		int now;cin>>now;
    		if(now!=first)
    			flag=1;
    	}
    	if(flag){
    		cout<<"Yes"<<endl;
    		return ;
    	}
    	if(x%first!=0){
    		cout<<"Yes"<<endl;
    		return ;
    	}
    	if(x/first>0){
    		cout<<"Yes"<<endl;
    		return ;
    	}
    	cout<<"No"<<endl;
    }
    
    main(){
    	int _T=1;cin>>_T;
    	while(_T--)solve();
    }
    
    • 1

    信息

    ID
    8064
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者