CodeForces - 1419C Killjoy

题目链接

https://codeforces.com/problemset/problem/1419/C

解题思路

总共三种情况0,1,2
分情况讨论一下。
1.全都是x时,0
2.存在x或全部之和为n*x时,1
3.其他情况,2

代码

// 废物代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+10;

int T, a[N], f, sum, n, x, ff;

int main()
{
    cin>>T;
    while(T--) {
        f = 0;
        ff = 0;
        sum = 0;
        cin>>n>>x;
        for(int i = 1;i <= n;i ++) cin >> a[i], sum += x-a[i];
        for(int i = 1;i <= n;i ++) {
            if(a[i] != a[1]) {
                f = 1;
            }
            if(a[i] == x) {
                ff = 1;
            }
        }


        if(!sum) {
            if(f) cout << 1 << endl;
            else cout << 0 << endl;
        } else {
            if(ff) cout << 1 << endl;
            else cout << 2 << endl;
        }

    } 

    return 0;
}

/*
// 大佬代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 2e5+10;
int a[maxn];
int main(){
    ios::sync_with_stdio(false);
    int T;  cin>>T;
    while(T--){
        int n, x;  cin>>n>>x;
        int cnt = 0, sum = 0;
        for(int i = 1; i <= n; i++){
            cin>>a[i];  if(a[i]==x)cnt++;
            sum += a[i];
        }
        if(cnt==n)cout<<0<<"\n";
        else if(cnt>=1 || sum==n*x)cout<<1<<"\n";
        else cout<<2<<"\n";
    }
    return 0;
}
*/

总结

少考虑了存在x的情况了。

思维 文章被收录于专栏

思维题都会了,ACM金牌就稳了! 我骗你的!

全部评论

相关推荐

数学转码崽:太可惜了老哥,你这背景这么好,但是项目真的拉了
点赞 评论 收藏
分享
野猪不是猪🐗:把你的学校加黑,加粗,斜体,下划线,描边,内阴影,内发光,投影,外发光,再上渐变色,居中,放大到最大字号,再把简历里其它内容删了,就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务