牛客周赛 Round 56

牛客周赛 Round 56

A 面包店故事

链接:https://ac.nowcoder.com/acm/contest/88392/A
来源:牛客网

题目描述

小镇上有一家面包店,面包以 元的价格出售,加 元可以多加几块培根。小歪带着
元来到了面包店,他想知道自己能不能买到加培根的面包?

输入描述:

在一行上输入三个整数 ,,(1≤,,≤100) 代表面包的价格、培根的价格和小歪带的钱。

输出描述:

如果小歪能加到培根,在一行上输出 ;否则,直接输出 。

示例1

输入
3 1 5
输出
YES

说明

面包加培根一共 4 元,小歪带了 5 元,他可以吃到培根!

示例2

输入
10 1 10
输出
NO

说明

面包加培根一共 11 元,小歪带了 10 元,他吃不到培根 (⋟﹏⋞) 。

题解

签到

#include
using namespace std;
int x,y,n;
int main(){
   
    int i,j,k;
    cin>>x>>y>>n;
    if(x+y>n)printf("NO\n");
    else printf("YES\n");
    return 0;
}
B 放课后故事

链接:https://ac.nowcoder.com/acm/contest/88392/B
来源:牛客网

题目描述

小 想要举办一个纸飞机大赛,他最新研制出的纸飞机需要 张纸才能折成。
为了制作纸飞机,他向班里的 个人要了一些纸,第 个人提供了 张纸给小 研究纸飞机。 
放学了,小 终于折好了全部的纸飞机,现在有 个人留下来和小 一起飞纸飞机。 最多有多少个人能分到纸飞机。

输入描述:

第一行输入三个整数 ,,(1≤≤105; 0≤≤105; 1≤≤109) 代表班级同学数量、留下来的同学数量和叠一只纸飞机需要的纸的数量。
第二行输入 个整数 1,2,…,(1≤≤109) 代表每一个同学提供的纸的数量。

输出描述:

在一行上输出一个整数,代表最多有多少个人能分到纸飞机。

示例1

输入
3 2 5
1 2 4
输出
1

说明

小 一共收集到 7 张纸,只可以叠一架纸飞机。

示例2

输入
6 3 4
1 1 4 5 1 4
输出
4

说明

小 一共收集到 16 张纸,可以叠 4 架纸飞机,每个人都能分到纸飞机。

题解

草率了,忘记小S自己也算一个,还有long long

#include
using namespace std;
#define int long long
int n,m,k,sum,a[100005];
signed main(){
   
    int i,j;
    cin>>n>>m>>k;
    for(i=1;i<=n;i++){
   
        cin>>a[i];
        sum+=a[i];
    }
    cout<<min(sum/k,m+1)<<endl;
    return 0;
}
C 异或故事

链接:https://ac.nowcoder.com/acm/contest/88392/C
来源:牛客网

题目描述

给定 组询问,76 每次询问都会给出一个正整数 ,你需要在区间 [1,109]中找到两个正整数 和 ,使得 ⊕= 。
 ⊕ 代表按位异或。

输入描述:

每个测试文件均包含多组测试数据。第一行输入一个整数 (1≤≤105) 代表数据组数,每组测试数据描述如下:
  在一行上输入一个整数 ( 1≤≤109 )代表76 给出的初始数字。

输出描述:

对于每一组测试数据,在一行上输出两个正整数,代表你找到的两个值。
 如果存在多个解决方案,您可以输出任意一个。

示例1

输入
3
1
5
4
输出
2 3
3 6
74 78

说明

对于第一组测试数据,(10)2 xor ⁡(11)2 = (01)2 ; 
对于第二组测试数据,(011)2xor (110)2=(101)2

题解

我不知道正解哈,位运算这块我学的不好
我想到的就是在取出比当前的数大的2的倍数T,然后输出T和T+a,但是好像不对,125分拿75分。
大佬有知道原因的和我说下吧/(ㄒoㄒ)/~~

#include
using namespace std;

#define int long long
int T,a;
signed main(){
   
    int i,j,k;
    cin>>T;
    while(T--){
   
        cin>>a;
        int x=1;while(x<=a)x*=2;
        cout<<x<<" "<<x+a<<endl;
    }
    return 0;
}

然后这是正解:

#include
using namespace std;

#define int long long
int T,n;
int lowbit(int x){
   
    return x&(-x);
}
signed main<

你可能感兴趣的:(牛客竞赛网比赛刷题,算法)