牛客2022跨年场

news2024/11/17 17:26:35

image

F题使用python,就是加了一个end = '\0',然后寄了好多。

A 猜群名

小沙为了这场元旦比赛绞尽脑汁,他现在在每个题目中藏入了一个字,收集所有的字,并将按照题号排列成一句话即可通过本题**!**

其次关于本场比赛难度预告:

输入描述:

输出描述:

将每个题隐藏的文字按照题号的顺序进行输出。
例如:
ABCDEFGH

首先有两个误区:

  1. 题目包括具体的内容而不仅仅是题目的“题目”(标题)
  2. 文字不一定是文字,也有可能是感叹号

对应情况:

A-> !
B-> A
C-> K
D-> 百
E-> 跨
F-> 赛
G-> 年
H->

跨年五百AK赛!

print('EGHDBCFA')

B 分赃

题目描述

小沙和兰子在分赃(bushi,他们获得了一个长度为 �n 的数列 A ,他们都觉得如果一个数字自己只拥有一个,那么他是有用的,如果拥有了两个及以上那么就会变得不珍惜。
所以我们定义,对于每个人他的快乐值为他所拥有的数字中独一无二的个数。请问你能否让兰子和小沙的快乐值相等。
例如对于数列 1 2 2 3 3 3 ,小沙可以获得 1 2 3 3 ,兰子可以获得 2 3 ,他们的快乐值都为 2 。因为小沙手中独一无二的有 1 和 2 ,兰子手中独一为二的有 2 和 3 。

小沙和兰子的分赃结果中,允许有人获得的数字数目为 0 。

输入描述:

第一行输入一个整数n,代表数列的长度,1≤n≤105。
第二行输入n个整数a,1≤ai​≤105。

输出描述:

如果可以相等那么输出"YES"(不带引号)
否则输出"NO"(不带引号)

示例1

输入

6
1 2 2 3 3 3

输出

YES

首先,我们分析:

对于某一个数字,如果有一个,那么必须要分给一个人,所以必定会引起一个人的快乐值变化

如果某个数字的个数是2,如果全部给一个人,不影响快乐值,如果分给两个人,不影响快乐值的大小。
综上:出现两次的数字相当于没有出现

如果某个数字出现的次数大于等于3,那么可以给一个人分给1,另一个2,可以给一个人增加快乐值。也可以全部给一个人,使得这个数字作废。

所以:

  • 对于出现一次的,如果个数是偶数,那么均分,大于等于三的(有的话)全部给一个人。
  • 对于出现一次的,如果个数是奇数,均分,显然一个人的比另一个人的数字多一。
    如果有大于等于三的,那么可以填补平。
    如果没有,就寄了。
#include <bits/stdc++.h>
using namespace std;
#define N 100200
int n;
int a[N];
int f[N];
int cnt[N];
int main()
{
    scanf("%d", &n);
    for(int i = 1; i <= n; i++){
        scanf("%d", a+i);
    }   
    for(int i =1; i <= n; i++){
        f[a[i]]++;
    }
    int n1 = 0, n2 = 0, n3 = 0; 
    for(int i = 1; i <= 1e5; i++){
        if(f[i] == 1) n1++;
        else if(f[i] >= 3) n2 ++;
        //else if(f[i] >= 4) n3 ++;
         
    }
    if(n2) puts("YES");
    else{
        if((n1)%2){
            puts("NO");
        }
        else{
            puts("YES");
        }
    }
    return 0;
}

C 翻卡牌

小沙有9张扑克牌,上面分别有 A23456789 各一张,没有 10JQK 。其中 A 我们使其为数字 1 ,下文也皆由数字 1 表示。现在小沙将其打乱,排列至一排,全部背置。
小沙手里有一个神秘的魔法,可以对于这九张扑克牌从前往后拼成的九位数,会将其复制一份前后拼接成一个十八位数字,然后获得该数字对 7 取模之后的金币数。
例如小沙手上的扑克牌全部翻开之后为 2 5 4 3 6 7 1 9 8,拼接之后的九位数为 254367198 ,复制一份之后为 254367198254367198 ,对7取模之后为 0,所以小沙无法获得金币。
现在小沙将问题抛给你,小沙会翻开几张(可能是 0 )扑克牌,剩下几张扑克牌仍处于背置状态。小沙想你帮他算一下,剩下的所有可能出现的情况中,小沙赚金币的期望是多少。

image

输入描述:

输出一行长度为9的字符串,其中仅包括数字1到9,和字符?。其中?代表该位置未翻开。

输出描述:

输出一个整数代表答案。

输入

254367?9?

输出

0

说明

无论结果是 254367198还是254367891他们获得的金币都是0个。

这一道题目可以使用暴力:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[15];
char s[20];
const int mod = 1e9+7;
bool ck()
{
    for(int i = 1; i <= 9; i++){
        if(s[i] != '?' && (ll)a[i] + '0' != (ll)s[i]) return false;
    }
    return true;
}
ll ksm(ll a, ll b){
    ll ret = 1;
    while(b){
        if(b & 1) ret = ret * a % mod;
        a = a * a % mod;
        b >>= 1;
    }
    return ret;
}
int main()
{
    ll cnt = 0;
    ll ans = 0;
    for(int i = 1; i <= 9; i++){
        a[i] = i;
    }   
    scanf("%d", s+1);
    do{
        if(!ck()) continue;
        ll tmp = 0;
        for(int i = 1; i <= 9; i++) tmp = tmp * 10 + a[i];
        for(int i = 1; i <= 9; i++) tmp = tmp * 10 + a[i];
        cnt ++;
        ans = (ans + tmp) % mod;
    }while(next_permutation(a+1, a+9+1));
    printf("%lld", ksm(ans, mod - 2));
    return 0;
}

但是官方的题解中,复制一遍相当于乘以1000000001,而有 1000000001 / 7 = 142 , 857 , 143 1000000001/7 = 142,857,143 1000000001/7=142,857,143可以整除。所以最终的答案一定是0

print(0)

D ygg的分数运算

image

示例1

输入

2 3 18

输出

YES

输入

3 5 10

输出

NO

在这一道题目中,

1 a + 1 b = a + b a × b \frac{1}{a} + \frac{1}{b} = \frac{a + b}{a\times b} a1+b1=a×ba+b

1 a × 1 b = 1 a × b \frac{1}{a} \times \frac{1}{b} = \frac{1}{a\times b} a1×b1=a×b1

在相加的过程中,可能会产生约分,但是分母是可以表示为两个素数的乘积,所以无伤大雅,约分之后还是这两个素数某次方的乘积。

所以仅仅使用乘法运算所得到的情况等价于使用两种运算得到的情况。

在这里我顿时想起了《NOJ.加一乘二平方》,使用了伟大的《分支限界法》,暴力枚举了经过若干次乘法的所有情况。

#include <bits/stdc++.h>
using namespace std;
#define int long long
int a, b, c;
queue<int> q;
map<int, bool> vis;
bool bfs()
{
    q.push(a);   
    q.push(b);
    vis[a] = 1;
    vis[b] = 1;
    if(a == c || b == c) return true;
    while(q.size()){
        int  t = q.front();
        q.pop();
        int nx = t * a;
        if(nx <= 1e9)
        {
            if(!vis[nx]){
                q.push(nx);
                vis[nx] = 1;
            }
            if(nx == c) return true;
        }
        nx = t * b;
        if(nx <= 1e9)
        {
            if(!vis[nx]){
                q.push(nx);
                vis[nx] = 1;
            }
            if(nx == c) return true;
        }
    }  
    return false; 
}
signed main()
{
    scanf("%lld%lld%lld", &a, &b, &c);
    if(bfs()){
        puts("YES");
    }  
    else{
        puts("NO");
    }
    return 0;
}

但是在这里,好像仅仅用c除以a,b看余数是不是等于0就可以了

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    while(c % a == 0) c /= a;
    while(c % b == 0) c /= b;
    if(c == 1)puts("YES");
    else puts("NO");
    return 0;
}

EFG

由于太水,不做题解

H nana吃蛋糕

题目描述

nana有一天肚子很饿,呜呜,很想吃蛋糕,她进入了一个边长大小为 n 的蛋糕正方形方阵,每一个矩阵方格上面都会放置一些蛋糕,我们规定( x , y )代表矩阵的第 x 行第 y 列,nana出发的起点为( 1 , 1 ),终点为( n , n )。

她遵循以下四种行走方式,同时她每个格子只能走一次:
image
如果该行走方式会跨越边界,那么nana会从另一边出现。

例如:

红色地点向右行走会到达蓝色地点。

上下边界同理。

问nana最多能吃到多少蛋糕🎂?

输入描述

image

输出描述:

输出一个整数代表答案,代表nana最多能吃到的蛋糕个数。

输入

2
1 1
1 1

输出

3

题解

官方题解:Click_here

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define N 820
int a[N][N];
signed main()
{
    int n;
    scanf("%lld", &n);
    for(int i = 1; i <= n; i ++)
    {
        for(int j = 1; j <= n; j++){
            scanf("%lld", &a[i][j]);
        }
    }
    int sum = 0;
    int minv = 0x7f7f7f7f;
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= n; j++){
            sum += a[i][j];
            if((i&1)^(j&1)){
                minv = min(minv, a[i][j]);
            }
        }
    }
    if(n & 1){
        printf("%lld", sum);
    }
    else{
        printf("%lld", sum - minv);
        //cout << endl << sum << " " << minv;
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/133784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jmap 和jstack使用

jmap jmap是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具 1.查看整个JVM内存状态 jmap -heap [pid]2.查看JVM堆中对象详细占用情况 jmap -histo [pid]3.导出整个JVM 中内存信息&#xff0c;可以利用其它工具打开dump文件分析&#xff0c;例如jdk自带的…

Faster RCNN网络源码解读(Ⅸ) --- ROIAlign、TwoMLPHead、FastRCNNPredictor部分解析

目录 一、回顾以及本篇博客内容概述 二、代码解析 2.1 FasterRCNNBase类 2.1.1 forward正向传播 2.2 FasterRCNN类 2.2.1 roi_heads定义 2.3 TwoMLPHead类&#xff08;faster_rcnn_framework.py&#xff09; 2.4 FastRCNNPredictor类 2.5 RoIHeads类&#xff08;roi_…

JavaWeb:用户注册登录案例

1.1 用户登录 1.1.1 需求分析 用户在登录页面输入用户名和密码&#xff0c;提交请求给LoginServlet在LoginServlet中接收请求和数据[用户名和密码]在LoginServlt中通过Mybatis实现调用UserMapper来根据用户名和密码查询数据库表将查询的结果封装到User对象中进行返回在LoginSe…

用或不用大O来优化代码(选择排序)

本文内容借鉴一本我非常喜欢的书——《数据结构与算法图解》。学习之余&#xff0c;我决定把这本书精彩的部分摘录出来与大家分享。 目录 写在前面 1.选择排序 2.选择排序实战 3.选择排序的实现 4.选择排序的效率 5.忽略常数 6.大O的作用 7.总结 写在前面 大 O 是一…

Java面向对象详解(下)

文章目录&#x1f4d6;前言&#xff1a;&#x1f3c5;封装• 封装的概念• 封装的好处• 封装的核心理解&#x1f3c5;继承• 继承的概念•继承的特点● 何时使用继承&#xff1f;● 继承的形式● 继承的传递性● 继承的构造方法&#x1f9f8;super关键字&#x1f387;用途&…

【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.14 平移、旋转、缩放

本节对应的视频讲解&#xff1a;B_站_视_频 https://www.bilibili.com/video/BV1te4y1L7Mu 本节讲解平移、旋转、缩放这些变换操作 1. 关联信号槽 首先&#xff0c;在 widget.cpp 的构造中&#xff0c;为 “变换” 复选框&#xff0c;关联信号槽 // 平移、旋转、缩放 conn…

leetcode 2439. 最小化数组中的最大值

给你一个下标从 0 开始的数组 nums &#xff0c;它含有 n 个非负整数。 每一步操作中&#xff0c;你需要&#xff1a; 选择一个满足 1 < i < n 的整数 i &#xff0c;且 nums[i] > 0 。将 nums[i] 减 1 。将 nums[i - 1] 加 1 。 你可以对数组执行 任意 次上述操作&…

程序的环境与预处理 程序的编译与链接

目录 1.程序的翻译环境和执行环境 ​编辑 2.编译链接 运行环境 3.预处理 预定义符号 #define #与## 带副作用的宏参数 宏和函数的对比 命名约定 ​编辑 #undef​编辑 命令行定义 ​编辑 条件编译 文件包含 嵌套文件包含 4.其他预处理指令 1.程序的翻译环境和…

新年伊始,和大家聊聊鲜枣课堂的未来

大家好&#xff0c;我是小枣君。时间过得很快&#xff0c;转眼之间&#xff0c;2022年已经结束了。回首这一年&#xff0c;感觉自己一直都在忙&#xff0c;却想不起来到底忙了些什么。这一年&#xff0c;我的生活和工作节奏&#xff0c;一直都是混乱的。这里面&#xff0c;既有…

罗振宇2023“时间的朋友”跨年演讲原版PPT(附下载)

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2022年11月份热门报告盘点2023年&#xff0c;如何科学制定年度规划&#xff1f;《底层逻辑》高清配图清华大学256页PPT元宇宙研究报告.pdf&#xff08;附下载链接&#xff09;…

软件测试[用例篇]

一. 回顾测试用例 1.测试用例基本要素 测试用例&#xff08;Test Case&#xff09;是为了实施测试而向被测试的系统提供的一组集合。 这组集合包含&#xff1a;测试环境、操作步骤、测试数据、预期结果等要素。 2.测试用例好处 测试用例可以提高测试效率&#xff08;可以减…

省时省力,高速收费站无线组网解决方案

一、行业背景随着我国高速公路里程数的不断增加&#xff0c;科技水平的不断进步&#xff0c;智能化的高速公路收费站趋势在不断的加强。例如&#xff1b;高速公路收费站智能备份系统&#xff0c;通常情况下收费站、路段分中心和省联网中心之间是需要传输收费数据记录流水、清账…

【1801. 积压订单中的订单总数】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个二维整数数组 orders &#xff0c;其中每个 orders[i] [pricei, amounti, orderTypei] 表示有 amounti 笔类型为 orderTypei 、价格为 pricei 的订单。 订单类型 orderTypei 可以分为两种&…

关于el-time-picker使用错误的记录

之前在紧急参与一个PC管理后台的项目&#xff0c;项目的基础架子是花裤衩大佬的vue-element-admin()vue2版本),。其中有一个需求是列表数据中数据回显时候&#xff0c;有关时间部分的数据在回显/编辑的情况下&#xff0c;提交时获取的值有问题。虽然后面解决了&#xff0c;但还…

2023年要来了。顺便分享过来后我的学开车经历

你好呀&#xff0c;读者朋友们&#xff01;我是你们的老朋友 zhen guo时光如梭&#xff0c;转眼间我这边再有1个来小时就2023年了&#xff0c;因时差&#xff0c;很多看到这里的读者朋友应该都已经进入2023年。2022年再也回不去了&#xff0c;就像曾经过去的每一年那样&#xf…

【王道操作系统】2.3.1 进程的同步与互斥

进程的同步与互斥 文章目录进程的同步与互斥1.进程同步2.进程互斥1.进程同步 同步也称为直接制约关系在多道程序环境下&#xff0c;进程是并发执行的&#xff0c;不同进程之间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,如等待、传递信息等&#xff0c;引入了…

IP协议重点总结(附实例)

文章目录前言一、IP地址1.1 概念1.2 作用1.3 格式1.4 组成1.5 分类二、NAT地址转换2.1 作用2.2 转换过程2.3 NAPT端口映射2.4 现实中的栗子&#xff08;以博主的手机为例&#xff09;2.4.1 连无线WLAN的情况2.4.2 用流量上网2.5 NAT的缺陷三、子网掩码3.1 格式3.2 作用3.3 计算…

windows安装IIS服务

安装ASP的环境IIS 1、使用快捷键 【Win X】 打开系统功能菜单&#xff0c;选择【程序和功能】 2、进入【程序和功能】界面管理后&#xff0c;点击【启用或关闭windows功能】。 3、然后保证以下勾选&#xff0c;其他的默认就行&#xff0c;点击确定。如图&#xff1a; 4、出现…

vueJs中的watch与watchEffect函数

前言有时&#xff0c;我们需要在状态变化时执行一些副作用,比如:监听路由状态,更改DOM,或是根据异步操作的结果去修改另一处的状态这个时候,就需要用到监听器在组合式API中,就可以使用watch函数在每次响应式状态发生变化时触发回调函数01使用watch监视refwatch:监听某个属性的变…

2023.01/1801. 积压订单中的订单总数

1801. 积压订单中的订单总数 题意: 给你一个二维整数数组 orders &#xff0c;其中每个 orders[i] [pricei, amounti, orderTypei] 表示有 amounti 笔类型为 orderTypei 、价格为 pricei 的订单。 订单类型 orderTypei 可以分为两种&#xff1a; 0 表示这是一批采购订单 buy …