补题集合2

news2024/11/17 14:33:38

VJ

409组队赛2

C - Find a Number
没想到这是一个签到题,因为数据量小,状态并不多,所以可以使用 b f s bfs bfs 去跑每一个状态。令 m o d mod mod 是余数, s u m sum sum 是累加和,那么状态最多就只有 500 ∗ 5000 500 * 5000 5005000 种状态。可以 b f s bfs bfs
但是要注意的地方是, b f s bfs bfs 在标记是否遍历过时,应在入队的时候就进行标记,而不是在出队的时候再进行标记,不然会重复入队造成 M L E MLE MLE 或者 T L E TLE TLE
代码如下:

#include<bits/stdc++.h>
using namespace std;
const int N = 500+5;
typedef pair<int, int>PII;
int T, n, m;
bool st[N][N*10];
struct node
{
    int mod, s;
    string ans;
};
queue<node>q;
string bfs()
{
    q.push({0, 0, ""});
    st[0][0] = true;
    while(q.size())
    {
        int t1 = q.front().mod, t2 = q.front().s;
        string s = q.front().ans;
        q.pop();
        if(t1 == 0 && t2 == m) return s;
        for(int i = 0; i < 10; i ++)
        {
            int z1 = (t1*10 + i) % n, z2 = t2 + i;
            if(z2 <= m && !st[z1][z2])
            {
                st[z1][z2] = true;
                q.push({z1, z2, s + (char)(i + '0')});
            }
        }
    }
    return "-1";
}
signed main()
{
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    cin >> n >> m;
    cout << bfs() << '\n';
}

H - Tower
这个题实属没想到可以这样暴力写
来源作者:owooooow
代码如下:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int Max = 0x3f3f3f3f3f3f3f3f;
const int Min = -0x3f3f3f3f3f3f3f3f;
const int N = 2e5+5;
typedef pair<int, int>PII;
int T, n, m;
int q[N], a[N];

signed main()
{
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    cin >> T;
    while(T --)
    {
        set<int>se;
        cin >> n >> m;
        for(int i = 0; i < n; i ++)
        {
            cin >> a[i];
            int x = a[i];
            while(x)
            {
                se.insert(x);
                x /= 2;
            }
        }
        int ans = Max;
        for(auto it : se)
        {
            int cnt = 0, res = 0;
            for(int i = 0; i < n; i ++)
            {
                if(a[i] <= it) q[cnt ++] = it - a[i];
                else
                {
                    int x = a[i], tt = 0;
                    while(x / 2 >= it)
                    {
                        tt ++;
                        x /= 2;
                    }
                    tt += min(abs(it - x), 1 + it - x / 2);
                    q[cnt ++] = tt;
                }
            }
            sort(q, q+cnt);
            for(int i = 0; i < cnt - m; i ++)
            {
                res += q[i];
            }
            ans = min(ans, res);
        }
        cout << ans << '\n';
    }
}

牛客

第十一届"图灵杯"NEUQ-ACM程序设计竞赛

古希腊掌管原神的神
这个题出的是真烂啊,题目也并没有说明,我们知不知道谁是真神或者是假神什么的。这个题最关键的一点就在于我们并不知道自己问的神他是真还是假还是变化神。所以只有当真神数量大于假神和变化神数量之和时,才能确定哪个是原神。因为在最坏的清况下我们问的 b + c b + c b+c 个神说的都是假话,假设都说原神是 x x x 吧;剩下的都是真神了,当再问 b + c + 1 b + c + 1 b+c+1 个神之后,都说原神是 y y y,这时候根据数量的大小,就能辨别哪一个是原神了。
最后再特判一下当只有一个神的时候,一次也不用问就可以确定。
代码如下:

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+5;
typedef pair<int, int>PII;
int T, n, m;

signed main()
{
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int a, b, c;
    cin >> a >> b >> c;
    if(a + b + c == 1)
    {
        cout << "YES\n";
        cout << 0 << '\n';
        return 0;
    }
    if(a > b + c)
    {
        cout << "YES\n";
        cout << (b+c)*2+1 << '\n';
        return 0;
    }
    cout << "NO\n";
    return 0;
}

牛客小白月赛88

多重映射
这个题,看完题解后就恍然大悟了,当时时间不多了,也没仔细想。这个题要倒着考虑,从后向前做一个并查集就可以了。例如 7 7 7 5 5 5 然后 5 5 5 3 3 3,那么就让 p [ 5 ] = 3 , p [ 7 ] = p [ 5 ] p[5] = 3,p[7] = p[5] p[5]=3p[7]=p[5]
唯一要注意的地方就是,这个是多组输入,不能每次都用 m e m s e t memset memset 来进行初始化,题解是用 m a p map map 处理,但是可以直接把出现的数字存入 v e c t o r vector vector 中,只对 v e c t o r vector vector 内的数字初始化就可以了,但是记得每次清空 v e c t o r vector vector
注意把数组大小开到 1 0 6 10^6 106
代码如下:

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+5;
typedef pair<int, int>PII;
int T, n, m;
int a[N], f[N];
PII p[N];
vector<int>v;
signed main()
{
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    cin >> T;
    while(T --)
    {
        cin >> n >> m;
        for(int i = 0; i < n; i ++)
        {
            cin >> a[i];
        }
        for(int i = 0; i < m; i ++)
        {
            int x, y;
            cin >> x >> y;
            p[i] = {x, y};
            v.push_back(x), v.push_back(y);
        }
        for(int i = m - 1; i >= 0; i --)
        {
            int t1 = p[i].first, t2 = p[i].second;
            if(f[t2] != 0) f[t1] = f[t2];
            else f[t1] = t2;
        }
        for(int i = 0; i < n; i ++)
        {
            if(f[a[i]]) cout << f[a[i]];
            else cout << a[i];
            if(i != n - 1) cout << " ";
            else cout << '\n';
        }
        for(auto it : v) f[it] = 0;
        v.clear();
    }
    return 0;
}

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

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

相关文章

微信小程序的页面交互1

一、page&#xff08;&#xff09;函数 每个页面的s代码全部写入对应的js文件的page&#xff08;&#xff09;函数里面。点击编译&#xff0c;就可以显示js代码的运行效果。注意&#xff0c;每个页面的page&#xff08;&#xff09;函数是唯一的。 page&#xff08;&#xff…

Oracle参数文件详解

1、参数文件的作用 参数文件用于存放实例所需要的初始化参数&#xff0c;因为多数初始化参数都具有默认值&#xff0c;所以参数文件实际存放了非默认的初始化参数。 2、参数文件类型 1&#xff09;服务端参数文件&#xff0c;又称为 spfile 二进制的文件&#xff0c;命名规则…

【CSDN活动】程序员职业生涯的分水岭:年龄还是经验?

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 程序员职业生涯的分水岭&#xff1a;年龄还是经验&#xff1f;引言技术更新换代…

Vue3中使用paper.js

目录 Paper.js的使用安装Paper引入Paper.js创建画布实例化Paper、Project以及Tool画圆画点和线画矩形导入图片画文字Item组曲线监听键盘事件监听鼠标事件设置动画下载成图片完整代码 Paper.js的使用 安装Paper npm install paper引入Paper.js import * as Paper from "p…

arduino 2.0以上版本上传项目data目录内文件到ESP8266闪存中

开发测试环境&#xff1a; arduino IDE : 2.3.2 开发板 ESP8266 系统&#xff1a;WINDOWS 10 截止目前&#xff0c;arduino版本为2.3.2&#xff0c;在开发项目的时候&#xff0c;发现一个问题&#xff0c;就是项目目录中data内的文件没有办法和主文件.ino一同上传到ESP8266的f…

学习笔记:MYSQL数据库基础知识

MYSQL数据库基础知识学习笔记 MYSQL基础学习数据库相关概念现主流数据库排名数据模型SQL分类SQL数据库基础操作 2024/3/27 学习资料&#xff1a;黑马程序员:MYSQL MYSQL基础学习 数据库和数据库管理系统(DBMS) 数据库: 是存储数据的集合&#xff0c;包括表、视图、索引等对象…

面试八股文之JAVA基础

JAVA基础 DNS、CDN&#xff1f;如何实现对象克隆?父子类静态代码块, 非静态代码块, 构造方法执行顺序?String s new String("abc") 创建了几个对象, 分别放到哪里?OSI网络模型七层&#xff1f;应用层协议&#xff1f;http协议和https协议区别&#xff1f;传输层协…

STM32学习笔记(7_1)- ADC模数转换器

无人问津也好&#xff0c;技不如人也罢&#xff0c;都应静下心来&#xff0c;去做该做的事。 最近在学STM32&#xff0c;所以也开贴记录一下主要内容&#xff0c;省的过目即忘。视频教程为江科大&#xff08;改名江协科技&#xff09;&#xff0c;网站jiangxiekeji.com 本期开…

QGIS开发笔记(一):QGIS介绍、软件下载和加载shp地图数据Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/136888334 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

大学教材《C语言程序设计》(浙大版)课后习题解析 | 第三、四章

概述 本文主要提供《C语言程序设计》(浙大版) 第三、四章的课后习题解析&#xff0c;以方便同学们完成题目后作为参考对照。后续将更新第五、六章节课后习题解析&#xff0c;如想了解更多&#xff0c;请持续关注该专栏。 专栏直达链接&#xff1a;《C语言程序设计》(浙大版)_孟…

【Python】进阶学习:pandas--describe()函数的使用介绍

&#x1f40d;【Python】进阶学习&#xff1a;pandas——describe()函数的使用介绍 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&am…

抖音弹幕游戏开发:打造全新互动体验,引领潮流风尚

在数字科技迅猛发展的时代&#xff0c;抖音作为一款领先的短视频平台&#xff0c;始终走在创新的前沿。为了满足用户日益增长的互动需求&#xff0c;我们投入大量研发力量&#xff0c;成功推出了抖音弹幕游戏开发项目&#xff0c;旨在为用户带来一种全新的、沉浸式的互动体验。…

鸿蒙(HarmonyOS)Navigation如何实现多场景UI适配?

场景介绍 应用在不同屏幕大小的设备上运行时&#xff0c;往往有不同的UI适配&#xff0c;以聊天应用举例&#xff1a; 在窄屏设备上&#xff0c;联系人和聊天区在多窗口中体现。在宽屏设备上&#xff0c;联系人和聊天区在同一窗口体现。 要做好适配&#xff0c;往往需要开发…

Alpha律所管理系统,助力律师团队管理提效再升级

律师团队管理&#xff0c;是律所成长与发展经久不衰的议题。无论是律所的创办还是扩张&#xff0c;管理者首先要考虑的就是管理模式的选择与更新问题&#xff0c;这几乎成为一个律所能否长远发展的关键“七寸”。那么&#xff0c;到底为什么团队管理如此重要&#xff0c;做好管…

【实现100个unity特效之7】unity 3d实现各种粒子效果

文章目录 先看最终效果下雨效果萤火虫和火花四溅的效果 3d下雨粒子效果涟漪效果雨滴和涟漪效果结合水花效果雨滴涟漪水花结合问题雾气效果萤火虫火花效果萤火虫和火花效果结合其他特效爆炸、闪电、火焰、雷雨特效&#xff08;2023/7/5更新&#xff09;源码完结 先看最终效果 下…

冰岛人[天梯赛]

文章目录 题目描述思路AC代码 题目描述 输入样例 15 chris smithm adam smithm bob adamsson jack chrissson bill chrissson mike jacksson steve billsson tim mikesson april mikesdottir eric stevesson tracy timsdottir james ericsson patrick jacksson robin patrickss…

图片如何做成二维码?手机扫码看图的制作方法

现在用二维码来展示图片、照片时很常用的一种方式&#xff0c;通过扫秒二维码就能够在手机上预览图片&#xff0c;更加的方便快捷。在制作图片二维码的时候&#xff0c;有些情况下需要不定时的在二维码图案不变的情况经常性的修改内容&#xff0c;或者除了图片之外还要加入其它…

【数据结构】受限制的线性表——队列

&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;个人主页&#x1f388;&#x1f388;&#x1f388;&#x1f388;&#x1f388; &#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;数据结构专栏&#x1f388;&#x1f388;&#x1f388;&…

最新版CleanMyMac X4.15.2有哪些亮眼的更新?

CleanMyMac X是一款专为macOS系统设计的清理和优化工具&#xff0c;它集成了多种功能来帮助用户保持Mac系统的整洁、高效和安全。 首先&#xff0c;CleanMyMac X具备智能扫描和清理功能&#xff0c;能够自动识别并清理Mac上的各种垃圾文件&#xff0c;包括重复文件、无用的语言…

《AI绘画与修图实战:Photoshop+Firefly从入门到精通》

关键点 1.自学教程&#xff1a;内容安排由浅入深、循序渐进&#xff0c;130多个经典AI案例案例助你在实战中掌握技巧 2.技术手册&#xff1a;透彻讲解PSAI、Firefly&#xff0b;AI的绘画和修图实战技巧&#xff0c;高效率学习 3.老师讲解&#xff1a;赠送170分钟频教程和数百个…