【马蹄集】— 百度之星 2023

news2024/11/15 16:55:03

在这里插入图片描述

BD202301·公园

可以先 b f s bfs bfs统计一下 t , f t,f t,f到达每个点的距离,还有 n n n到达其他点的距离即其他点到达 n n n的距离 然后枚举每个点 直接计算得到最小值即可
注意特判有人无法到达 n n n的情况

code:


#include<bits/stdc++.h>
#define endl '\n'
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
#define F first
#define S second
#define lowbit(x) ((x) & (-x))
#define _ int _T; _T = 1; while(_T --) 
#define int long long
#define no cout << "NO" << endl
#define yes cout << "YES" << endl

using namespace std;
typedef pair<int, int> PII;
typedef pair<char,int> PCI;
const int N = 4e4 + 7;
const int mod = 998244353;
int t,f,n,m;
int te,fe,s;
vector<int> g[N];
int d1[N],d2[N],d3[N];

void bfs(){
    queue<int> q1,q2,q3;
    q1.push(t);
    q2.push(f);
    q3.push(n);
    vector<int> st1(n + 1,0),st2(n + 1,0),st3(n + 1,0);
    st1[t] = 1,st2[f] = 1,st3[n] = 1;
    for(int i = 1;i <= n;i ++){
        d1[i] = 500000;
        d2[i] = 500000;
        d3[i] = 500000;
    }
    d1[t] = 0,d2[f] = 0,d3[n] = 0;
    while(q1.size()){
        auto x = q1.front();
        q1.pop();
        for(auto son : g[x]){
            if(st1[son]) continue;
            st1[son] = 1;
            q1.push(son);
            d1[son] = min(d1[son],d1[x] + 1);
        }
    }
    while(q2.size()){
        auto x = q2.front();
        q2.pop();
        for(auto son : g[x]){
            if(st2[son]) continue;
            st2[son] = 1;
            q2.push(son);
            d2[son] = min(d2[son],d2[x] + 1);
        }
    }
    while(q3.size()){
        auto x = q3.front();
        q3.pop();
        for(auto son : g[x]){
            if(st3[son]) continue;
            st3[son] = 1;
            q3.push(son);
            d3[son] = min(d3[son],d3[x] + 1);
        }
    }
}

void solve(){
    cin >> te >> fe >> s;
    cin >> t >> f >> n >> m;
    for(int i = 0;i < m;i ++){
        int u,v; cin >> u >> v;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    bfs();
    if(d3[t] == 500000 || d3[f] == 500000){
        cout << -1 << endl;
        return;
    }
    int mn = d3[t] * te + d3[f] * fe;
    for(int i = 1;i <= n;i ++){
        int cnt1 = d1[i] * te;
        int cnt2 = d2[i] * fe;
        int cnt3 = d3[i] * (te + fe - s);
        mn = min(mn,cnt1 + cnt2 + cnt3);
    }
    cout << mn << endl;
}

signed main(){
    fast();
    _
    solve();
    return 0;
}  

BD202303·第五维度

首先特判下如果 v v v 不为零的人 ≤ \leq 1 那么就是 -1
其他二分算一下能完成多少 然后减去最大的然后 return 判断即可

code:


#include<bits/stdc++.h>
#define endl '\n'
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
#define F first
#define S second
#define lowbit(x) ((x) & (-x))
#define _ int _T; _T = 1; while(_T --) 
#define int long long
#define no cout << "NO" << endl
#define yes cout << "YES" << endl

using namespace std;
typedef pair<int, int> PII;
typedef pair<char,int> PCI;
const int N = 1e5 + 7;
const int mod = 998244353;
int n,m;

struct node{
    int s;
    int v;
} a[N];

int check(int x){
    __int128 sum = 0;
    vector<int> v;
    for(int i = 0;i < n;i ++){
        int cnt;
        if(x <= a[i].s) cnt = 0;
        else cnt = (x - a[i].s) * a[i].v;
        v.push_back(cnt);
        sum += cnt;
    }
    int mx = *max_element(v.begin(),v.end());
    sum -= mx;
    return sum <= m;
}

void solve(){
    cin >> n >> m;
    for(int i = 0;i < n;i ++) cin >> a[i].s >> a[i].v;
    int cnt = 0;
    for(int i = 0;i < n;i ++){
        if(a[i].v) cnt ++;
    }
    if(cnt < 2){
        cout << -1 << endl;
        return;
    }
    int l = 0,r = 5e9;
    while(l + 1 != r){
        int mid = l + r >> 1;
        if(check(mid)) l = mid;
        else r = mid;
    }
    cout << r << endl;
}

signed main(){
    fast();
    _
    solve();
    return 0;
}  

BD202305·糖果促销

首先第一种方法 很明显的二分 去特判下 p = 1 即可
第二种则直接计算 显然想吃 k k k 块糖 就会产生 k k k 个糖纸 最后一个吃的糖肯定不参与糖纸的置换 所以参与糖纸置换的仅有 k − 1 k-1 k1个糖纸 那么 答案即 k − ( k − 1 ) / p k-(k-1)/p k(k1)/p

code1:


#include<bits/stdc++.h>
#define endl '\n'
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
#define F first
#define S second
#define lowbit(x) ((x) & (-x))
#define _ int _T; cin >> _T; while(_T --) 
#define int long long
#define no cout << "NO" << endl
#define yes cout << "YES" << endl

using namespace std;
typedef pair<int, int> PII;
typedef pair<char,int> PCI;
const int N = 3e5 + 7;
const int mod = 998244353;
int p,k;

int check(int x){
    int sum = x;
    while(x / p){
        sum += x / p;
        x = x / p + x % p;
    }
    return sum < k;
}

void solve(){
    cin >> p >> k;
    if(!k){
        cout << 0 << endl;
        return;
    }
    if(p == 1){
        cout << 1 << endl;
        return;
    }
    int l = 0,r = k;
    while(l + 1 != r){
        int mid = l + r >> 1;
        if(check(mid)) l = mid;
        else r = mid;
    }
    cout << r << endl;
}

signed main(){
    fast();
    _
    solve();
    return 0;
} 

code2:


#include<bits/stdc++.h>
#define endl '\n'
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
#define F first
#define S second
#define lowbit(x) ((x) & (-x))
#define _ int _T; cin >> _T; while(_T --) 
#define int long long
#define no cout << "NO" << endl
#define yes cout << "YES" << endl

using namespace std;
typedef pair<int, int> PII;
typedef pair<char,int> PCI;
const int N = 3e5 + 7;
const int mod = 998244353;
int p,k;

void solve(){
    cin >> p >> k;
    if(!k){
        cout << k << endl;
        return; 
    }
    int ans = k - (k - 1) / p;
    cout << ans << endl;
}

signed main(){
    fast();
    _
    solve();
    return 0;
} 

BD202321·新材料

直接遇到出现过得数就与上一次出现的位置距离看是否小于等于 k k k即可

code:


#include<bits/stdc++.h>
#define endl '\n'
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
#define F first
#define S second
#define lowbit(x) ((x) & (-x))
#define _ int _T; _T = 1; while(_T --) 
#define int long long
#define no cout << "NO" << endl
#define yes cout << "YES" << endl

using namespace std;
typedef pair<int, int> PII;
typedef pair<char,int> PCI;
const int N = 1e5 + 7;
const int mod = 998244353;
int n,k;

void solve(){
    cin >> n >> k;
    map<int,int> mp;
    map<int,int> mp2;
    int ans = 0;
    for(int i = 1;i <= n;i ++){
        int x; cin >> x;
        if(!mp[x]) mp[x] = i;
        else{
            if(i - mp[x] <= k){
                if(mp2[x]) continue;
                mp2[x] = 1;
                ans ^= x;
            } else{
                mp[x] = i;
            }
        }
    }
    cout << ans << endl;
}

signed main(){
    fast();
    _
    solve();
    return 0;
}  

BD202319·新的阶乘

筛一下质数 然后暴力跑质数的倍数 去统计倍数中含有此质数的指数
#define int long long 等于 喜提 tle

code:


#include<bits/stdc++.h>
#define endl '\n'
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
#define F first
#define S second
#define lowbit(x) ((x) & (-x))
#define _ int _T; _T = 1; while(_T --) 
#define no cout << "NO" << endl
#define yes cout << "YES" << endl

using namespace std;
typedef pair<int, int> PII;
typedef pair<char,int> PCI;
const int N = 1e7 + 7;
const int mod = 998244353;
int st[N];
int x;
int prime[N];
int cnt;

void get_prime(int n){
    for(int i = 2;i <= n;i ++){
        if(st[i]) continue;
        prime[cnt ++] = i;
        for(int j = i + i;j <= n;j += i) st[j] = 1; 
    }
}

void solve(){
    int x; cin >> x;
    get_prime(x);
    cout << "f(" << x << ")=";
    for(int i = 0;i < cnt;i ++){
        int nw = prime[i];
        long long sum = x - (nw - 1);
        for(int j = nw + nw;j <= x;j += nw){
            int k = j;
            int sb = 0;
            while(k % nw == 0){
                sb ++;
                k /= nw;
            }
            sum += sb * (x - (j - 1));
        }
        cout << nw;
        if(sum > 1) cout << "^" << sum;
        if(i != cnt - 1) cout << "*";
    }
}

signed main(){
    fast();
    _
    solve();
    return 0;
}  

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

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

相关文章

品牌做电商控价的原因

品牌控价确实是一项至关重要的任务&#xff0c;它关乎着品牌形象、市场定位以及长期发展的稳定性。在电商平台上&#xff0c;价格的公开性和透明度使得消费者、经销商和其他渠道参与方都能够轻易地进行价格比较。因此&#xff0c;品牌方必须对电商渠道的价格进行严格的管控&…

电商API接口助力直播带货选品||助力电商平台搭建选品

如今&#xff0c;直播带货如火如荼。直播带货的核心是卖货、品牌盈利&#xff0c;那想要带货效果更好&#xff0c;选品及定价是最关键的环节。 事实上&#xff0c;品牌企业可以直接使用API接口工具来辅助自身选品及定价&#xff0c;这主要是因为比价工具在直播带货选品环节能起…

因智而兴 向“新”而行 | 软通动力携子公司鸿湖万联亮相数字中国建设峰会·智算云生态大会

5月23日至27日&#xff0c;第七届数字中国建设峰会在福州盛大召开。作为峰会的重要组成部分&#xff0c;由中国电信、中国电科、中国电子联合主办的第三届智算云生态大会同步召开。此次大会以“国云注智 聚力向新”为主题&#xff0c;深入探讨了智算云、人工智能、数据要素、量…

干货!渗透测试入门教程!(建议收藏)

渗透测试是指从内网、外网等网络环境中&#xff0c;利用各种手段对某个特定网络进行模拟攻击&#xff0c;目的是为了寻找可能被利用的漏洞&#xff0c;是企业中重要的一环、 虽然大多数人在学习后都能快速上手&#xff0c;但渗透测试还是有一定的门槛&#xff0c;今天就给大家…

电脑重要文件如何加密保护?教你两种方法

加密是保护电脑重要文件的常见方法&#xff0c;可以有效避免文件数据泄露。那么&#xff0c;电脑重要文件该如何加密保护呢&#xff1f;下面小编就来教你两种方法&#xff0c;帮助你解决文件安全问题。 超级加密3000 超级加密3000是一款专业的电脑数据加密软件&#xff0c;可以…

自定义CSS属性(@property)解决自定义CSS变量无法实现过渡效果的问题

且看下面的代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>demot</title&g…

幼儿园老师投稿渠道

幼儿园老师投稿通常指的是教师为了分享自己的教学经验、教育活动设计、儿童发展研究等内容&#xff0c;向专业杂志、教育平台或在线论坛提交文章或资料的过程。以下是一些关于幼儿园老师投稿的步骤和建议&#xff1a; 一、准备工作 选择合适的平台 研究不同平台的读者群体&a…

大连瓦房店市科工局副局长乔宽一行调研蓝卓

日前&#xff0c;瓦房店市科技和工业信息化局副局长乔宽、副局长国海军、轴承协会秘书长高钧一行莅临蓝卓调研&#xff0c;学习浙江数字经济发展路径&#xff0c;考察蓝卓数字化服务能力。蓝卓副总经理陈挺、装备汽配军团总监陈伟亮、数字化咨询总监周立斌、大连区域方案经理龚…

手机信息恢复:应对数据丢失的策略与技术

由于各种原因&#xff0c;我们经常会遭遇到手机数据丢失的困境。如何有效地应对数据丢失&#xff0c;找回那些对我们来说至关重要的信息&#xff1f;这就需要我们了解和掌握手机信息恢复的策略与技巧。本文将为您揭示信息数据恢复的奥秘&#xff0c;介绍应对数据丢失的实用方法…

视频号小店脱颖而出,一跃成为电商黑马!马化腾要实现电商梦了?

大家好&#xff0c;我是喷火龙。 视频号这个名字在电商的圈子里是经常被提起的&#xff0c;特别是从今年开始&#xff0c;很多之前的电商项目不行&#xff0c;加上传统电商平台开始走下坡路&#xff0c;于是很多电商人都把视频号小店作为一个新的突破口。 因为视频号小店足够…

mySQL事务、存储引擎

什么是事务&#xff0c;事务特性————>保证数据完整性 1,事务是作为单个逻辑工作单元执行的一些列操作。 2,多个操作为一个整体向系统提交&#xff0c;要么执行&#xff0c;要么都不执行。 3,事务是一个不可分割的工作逻辑单元。 事务四特性&#xff1a; 原子性atomi…

假如有几十个请求,如何去控制高并发?

公司项目中做图片或文件批量下载&#xff0c;每次下载都是大批量的&#xff0c;那么假如我一次性下载几十个&#xff0c;如何去控制并发请求的&#xff1f; 让我想想&#xff0c;额~&#xff0c; 选中ID&#xff0c;循环请求&#xff1f;&#xff0c;八嘎&#xff01;肯定不是那…

【数据结构】 排序算法 ~ 总结篇

文章目录 1. 排序几个重点概念的理解2. 排序算法的分析&#x1f427; 1. 排序几个重点概念的理解 2. 排序算法的分析&#x1f427;

C语言中的位段

位段是通过结构体实现的&#xff0c;可以在一定程度上减小空间浪费&#xff0c;位段的声明和结构体类似&#xff0c;有以下几个不同&#xff1a; ①位段的成员必须是整形&#xff08;int,char,short等&#xff09;。 ②成员后边有冒号和数字&#xff0c;表示该成员占几个bit位…

Zigbee +PC上位机 无线控制二维云台开发笔记

今日尝试开发一款简单好学的PC上位机无线控制二维云台的小试验品&#xff1a; 主要开发环境与工具介绍&#xff1a; 单片机 STM32F103C8T6 使用标准库函数编程 Visual Studio 2022软件C# Winform 开发 上位机控制软件 DL_20 无线串口模块 &#xff0b; USB-TTL 模块 实现无线通…

tty/pty/console/getty/shell/telnet

tty 终端(termimal)= tty(Teletypewriter, 电传打印机),作用是提供一个命令的输入输出环境,在linux下使用组合键ctrl+alt+T打开的就是终端,可以认为terminal和tty是同义词。 tty泛指所有的终端设置,这些是真实存在的设备。 通过tty命令可以查看当前终端连接的设备。…

水电智能抄表是什么?

1.简述&#xff1a;水电智能抄表的兴起 水电智能抄表系统是现代科学技术和传统公共文化服务相结合的产物&#xff0c;它通过自动化技术性改变了传统的人工抄表方式&#xff0c;大大提高了高效率&#xff0c;降低生产成本&#xff0c;同时也为用户提供了更为贴心的服务。这一新…

5倍收益秘诀:APP广告如何变现?

在这个数字时代&#xff0c;智能手机几乎成了我们生活中不可或缺的一部分。无论是早晨醒来的第一件事&#xff0c;还是睡前的最后一件事&#xff0c;手机都与我们紧密相连。而在这个连接的世界里&#xff0c;APP广告变现成为了一个热门话题&#xff0c;它不仅仅是将每一次点击转…

TCL华星揽获技术创新奖,创新能力与伙伴价值再获肯定

近日&#xff0c;以“拥抱AI共创美好”为主题的2024年联想全球供应商大会在深圳圆满举办&#xff0c;重磅分享联想战略愿景和目标。 TCL华星应邀设置品牌展区&#xff0c;携手机、IT等领域10余款前沿显示产品亮相会场&#xff0c;以先锋显示科技演绎联合共创的多元化场景。联想…

InternLM2-Math-Plus全面升级,全尺寸最强的开源数学模型

总览 数学能力是大语言模型推理水平的重要体现。上海人工智能实验室在推出领先的开源数学模型InternLM2-Math的三个月之后对其进行了升级&#xff0c;发布了全新的 InternLM2-Math-Plus。升级后的 InternLM2-Math-Plus 在预训练和微调数据方面进行了全面的优化&#xff0c;显著…