Codeforces Round 966 (Div. 3)(A,B,C,D,E,F)
A. Primary Task
签到
void solve()
{string s;cin>>s;bool bl=true;if(s.size()<=2)bl=false;else{if(s.substr(0,2)=="10"){if(s[2]=='0')bl=false;else if(s[2]=='1'&&s.size()<=3)bl=false; }else bl=false;}if(bl)cout<<"YES\n";else cout<<"NO\n";return ;
}
B. Seating in a Bus
签到
#define _rep(i,a,b) for(int i=(a);i<=(b);++i)
int q[N],a[N];
void solve()
{cin>>n;_rep(i,0,n+1)a[i]=0;_rep(i,1,n)cin>>q[i];_rep(i,1,n){if(i==1)a[q[i]]=1;else if(!a[q[i]-1]&&!a[q[i]+1]){cout<<"NO\n";return;}a[q[i]]=1;}cout<<"YES\n";return;
}
C. Numeric String Template
签到
题意是字符串和数组必须一一对应,注意要开两个map避免一个数字对应多个字母
#define _for(i,n) for(int i=0;i<(n);++i)
#define _rep(i,a,b) for(int i=(a);i<=(b);++i)
int q[N];
void solve()
{cin>>n;_rep(i,0,n-1)cin>>q[i];cin>>m;while(m--){string s;cin>>s;map<int,int>mp,has;if(s.size()!=n)cout<<"NO\n";else{bool bl=false;_for(i,s.size()){if(!mp.count(s[i])){if(!has.count(q[i]))mp[s[i]]=q[i],has[q[i]]=s[i];else {cout<<"NO\n";bl=true;break;}}else if(mp[s[i]]!=q[i]){cout<<"NO\n";bl=true;break;}}if(!bl)cout<<"YES\n";}}return ;
}
D. Right Left Wrong
题意,给定长度为n的数组和一个长度为n的LR序列,每次选择L***R都可以获取L~R之间的所有数字的和,但是每个L,R只能用一次,问能得到的最大值是多少
可以发现,无论怎么选择区间,如果两个区间不是相互包含的关系,那么就有更优的解,那就是选两个区间最左边没使用过的L和两个区间最右边没使用过的R,这样可以保证答案最大
举例说明:
第一行不如第二行(第二行多出来两个没有选择的”RL“)
第二行不如第三行(第三行选择最左L和最右R就可以包括第二行的所有情况)
第四行和第三行等价(相交也可以转化为包含的关系)
综上所述,只需要贪心 寻找从1~n 每个L的最右边没使用过的R就可以了,然后用前缀和把每一次的分数加上
#define _rep(i,a,b) for(int i=(a);i<=(b);++i)
int q[N],qian[N];
void solve()
{cin>>n;vector<int>v;_rep(i,1,n)cin>>q[i],qian[i]=q[i]+qian[i-1];string s;cin>>s;s=" "+s;_rep(i,1,n)if(s[i]=='R')v.pb(i);int now=v.size()-1,res=0;_rep(i,1,n){if(s[i]=='L'){if(now>=0&&v[now]>i)res+=qian[v[now]]-qian[i-1],now--;else break;}}cout<<res<<'\n';return ;
}
E. Photoshoot for Gorillas
题意抽象出来就是W个大猩猩每一只高度为a[i],然后在一个n*m的矩阵的格子里面,每次划定一个k*k的正方形,奇观度的值加上正方形内部所有大猩猩的高度,在划定完所有不同位置的k*k正方形后为了使得奇观度最大,大猩猩应该如何放置
思路:一些格子被重复算了,那么重复次数越多的格子放的大猩猩高度尽可能高就能使答案最大,那么就把所有的格子倍率,也就是重复次数算出来,然后把格子倍率和大猩猩高度分别排序就能计算出最后答案
然后就是计算格子倍率的问题,现在只考虑列的重复次数样例如下
这个位置列被重复算的次数最多是2,那么也就是说,列重复的次数取决于这个点到左右两端的距离的最小值,也就是x=min(j,m-j+1),同时重复次数显然不能超过k,所以x=min(min(j,m-j+1),k);
但是还有一个问题,假设这个点到左端点的距离取到最小值,但是此时小正方形右边可能会超出矩形的范围怎么办
那么还要加一个约束条件,假设此时的小正方形的最左边为y,那么就有y+k-1<=m,也就是y<=(m-k+1)
所以最后计算列重复的次数的公式为:x=min(min(j,m-j+1),min(k,m-k+1));
与行重复次数相乘就是某一个点的重复次数
代码实现
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <cmath>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define pp pop_back()
#define int long long
#define laile cout<<"laile"<<endl
#define lowbit(x) ((x)&(-x))
#define double long double
#define sf(x) scanf("%lld",&x)
#define sff(x,y) scanf("%lld %lld",&x,&y)
#define sd(x) scanf("%Lf",&x)
#define sdd(x,y) scanf("%Lf %Lf",&x,&y)
#define _for(i,n) for(int i=0;i<(n);++i)
#define _rep(i,a,b) for(int i=(a);i<=(b);++i)
#define _pre(i,a,b) for(int i=(a);i>=(b);--i)
#define all(x) (x).begin(), (x).end()
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
typedef unsigned long long ULL;
typedef pair<int,int>PII;
const int N=1e6+10,INF=4e18;
int n,m,k,cn;
int q[N];
void solve()
{cin>>n>>m>>k;cin>>cn;_rep(i,1,cn)cin>>q[i];sort(q+1,q+1+cn,greater<int>());vector<int>now;_rep(i,1,n)_rep(j,1,m)now.pb(min(min(i,n-i+1),min(k,n-k+1))*min(min(j,m-j+1),min(k,m-k+1)));sort(all(now),greater<int>());int res=0;_rep(i,0,cn-1){
// cout<<q[i+1]<<" "<<now[i]<<endl;res+=q[i+1]*now[i];}cout<<res<<'\n';return ;
}
signed main()
{IOS;int T=1;cin>>T;while(T--)solve();return 0;
}
F. Color Rows and Columns
题意:
针对每一个小矩形(a*b),每次涂色都选择当前边最短的那条(假设为a),然后使用a次操作获得一分
然后未涂色的矩形又是一个新的小矩形,直到最后一步1*1的矩形,可以用1次操作获得2分,这样操作1为最优的操作
那每个小矩形要操作几次?要从每个小矩形上得到多少分才是最优解?感觉贪心不能解决这个问题,于是用DP
由于要至少得到V分,那么不妨设V为体积
假设f[i]:得分为i的时候操作次数最少为f[i]
那么每一个小矩形显然要选择一种得分v来对应相应的最小操作数为w
显然每一个小矩形都可以计算出几组{v,w}然后选择其中的一组
那么用一个分组背包就可以解决这个问题
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <cmath>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define pp pop_back()
#define int long long
#define laile cout<<"laile"<<endl
#define lowbit(x) ((x)&(-x))
#define double long double
#define sf(x) scanf("%lld",&x)
#define sff(x,y) scanf("%lld %lld",&x,&y)
#define sd(x) scanf("%Lf",&x)
#define sdd(x,y) scanf("%Lf %Lf",&x,&y)
#define _for(i,n) for(int i=0;i<(n);++i)//
#define _rep(i,a,b) for(int i=(a);i<=(b);++i)
#define _pre(i,a,b) for(int i=(a);i>=(b);--i)
#define all(x) (x).begin(), (x).end()
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
typedef unsigned long long ULL;
typedef pair<int,int>PII;
const int N=1e6+10,INF=4e18;
int n,m;
int a[N],b[N];
struct aa
{int v,w;
};
int f[10010];
void solve()
{cin>>n>>m;memset(f,0x3f,(m+1)*8);f[0]=0;_rep(i,1,n){int a,b,w=0,v=0;cin>>a>>b;vector<aa>q;if(a>b)swap(a,b);while(b>a){b--;w+=a,v++;q.pb({v,w});}if(a==b&&a==1)q.pb({v+2,w+1});else{_pre(i,a,1){w+=i,v++;q.pb({v,w});if(i==a)continue;w+=i,v++;if(i!=1)q.pb({v,w});else q.pb({v+1,w});}}
// for(auto i:q)cout<<i.v<<" "<<i.w<<endl;for(int j=m;j>=0;j--)for(int k=0;k<q.size();k++)
// if(q[k].v<=j)f[j]=min(f[j],f[max(j-q[k].v,0ll)]+q[k].w);}if(f[m]!=0x3f3f3f3f3f3f3f3f)cout<<f[m]<<'\n';else cout<<"-1\n";return ;
}
signed main()
{IOS;int T=1;cin>>T;while(T--)solve();return 0;
}
相关文章:

Codeforces Round 966 (Div. 3)(A,B,C,D,E,F)
A. Primary Task 签到 void solve() {string s;cin>>s;bool bltrue;if(s.size()<2)blfalse;else{if(s.substr(0,2)"10"){if(s[2]0)blfalse;else if(s[2]1&&s.size()<3)blfalse; }else blfalse;}if(bl)cout<<"YES\n";else cout…...
【代码随想录算法训练营第42期 第六天 | LeetCode242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和】
代码随想录算法训练营第42期 第六天 | LeetCode242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和 一、242.有效的字母异位词 解题代码C: bool isAnagram(char* s, char* t) {int len1 strlen(s);int len2 strlen(t);int al[26] {0};int b…...

WebRTC音视频开发读书笔记(一)
一、基本概念 WebRTC(Web Real-Time Communication,网页即时通信)于2011年6月1日开源,并被纳入万维网联盟的W3C推荐标准,它通过简单API为浏览器和移动应用提供实时通信RTC功能。 1、特点 跨平台:可以在Web,Android、…...

llama3.1本地部署方式
llama3.1 资源消耗情况 Llama 3.1 - 405B、70B 和 8B 的多语言与长上下文能力解析  70B版本,FP1616K token需要的资源约为75G;FP16128K token需要的资源约为110G  1、ollama ollama工具部署及使用…...
相机光学(三十四)——色差仪颜色观察者视角
1.为什么会有观察者视角 颜色观察角度主要涉及到人眼观察物体时,视角的大小以及屏幕显示颜色的方向性对颜色感知的影响。 人眼观察物体的视角:在黑暗条件下,人眼主要依靠杆体细胞来分辨物体的轮廓,而杆体细胞分布在视网…...
思二勋:web3.0是打造应对复杂市场敏捷组织的关键
本文内容摘自思二勋所著的《分布式商业生态战略》一书。 数字化时代,需要企业具备敏捷应对变化的能力,以敏捷反应应对客户和市场的迅速变化。敏捷能力的建设需要触点网络、信息系统、IT 架构、业务流程等同时实现敏捷。尤其是在多变且复杂环境中,特别要求战略管理的敏捷性和…...

一文带你快速了解——HAProxy负载均衡
一、HAProxy简介 1.1、什么是Haproxy HAProxy是法国开发者 威利塔罗(Willy Tarreau)在2000年使用C语言开发的一个开源软件是一款具备高并发(万级以上)、高性能的TCP和HTTP负载均衡器支持基于cookie的持久性,自动故障切换,支持正则表达式及web状态统计。…...

【C++高阶】哈希—— 位图 | 布隆过滤器 | 哈希切分
✨ 人生如梦,朝露夕花,宛若泡影 🌏 📃个人主页:island1314 🔥个人专栏:C学习 ⛺️ 欢迎关注:👍点赞 👂&am…...

启发式算法之模拟退火算法
文章目录 1. 模拟退火算法概述1.1 算法起源与发展1.2 算法基本原理 2. 算法实现步骤2.1 初始化过程2.2 迭代与降温策略 3. 模拟退火算法的优化策略3.1 冷却进度表的设计3.2 参数调整与策略 4. 模拟退火算法的应用领域4.1 组合优化问题4.1.1 旅行商问题(TSPÿ…...

编码器汇总:光学编码器,霍尔编码器,磁性编码器,电容式编码器,单圈编码器,多圈编码器,增量式编码器,绝对值式编码器等
系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言一、光学编码器二、霍尔编码器三、磁性编码器四、电容式编码器五、单圈编码器六、多圈编码器七、增量式编码器八、…...

有哪些性价比高的蓝牙耳机可入?四款百万好评实力品牌推荐!
蓝牙耳机大家都再熟悉不过了,作为最常用的智能配件之一,谁还没有用过几款蓝牙耳机呢,但是选购蓝牙耳机上还是有一些需要注意的地方,市面上的吹风机可谓是五花八门。有哪些性价比高的蓝牙耳机可入?本人花了一些时间整理…...
MySQL数据库——表的CURD(Update)
3.Update 语法:update table_name set column expr 案例 将孙悟空的数学成绩变更为80 mysql> select name,math from result; ----------------- | name | math | ----------------- | 唐三藏 | 98 | | 孙悟空 | 78 | | 猪悟能 | 98 |…...

性能测试 —— linux服务器搭建JMeter+Grafana+Influxdb监控可视化平台!
前言 在当前激烈的市场竞争中,创新和效率成为企业发展的核心要素之一。在这种背景下,如何保证产品和服务的稳定性、可靠性以及高效性就显得尤为重要。 而在软件开发过程中,性能测试是一项不可或缺的环节,它可以有效的评估一个系…...

python基础命令学习
1.Python基础知识 目录 1.Python基础知识1.1 变量及类型1.2 标识符与关键字1.3 输出与输入1.3.1格式化符号1.3.2转义字符1.3.3结束符1.3.4输入的特点 1.4 运算符1.4.1 算数运算符1.4.2 赋值运算符1.4.3 比较(即关系)运算符1.4.4 逻辑运算符 1.5 数据类型转换1.6 判断与循环语句…...
程序设计基础(试题及答案)
一、填空题 1.__ ____函数是程序启动时惟一的入口。 2.算法的复杂性包含两方面: 和 。 3.已知 char c= a ; int x=2,k; 执行语句k=c&&x++ ; 则x为 ,k为 。 4.数值0x34对应的十进制为 。 5…...
日常收录资源
日常收录资源 工具类绘图浏览器插件 软件类DockerGoJavaJavaScriptSpring Boot架构计算机网络算法其他 设计类配色素材图标图片 工具类 绘图 ProcessOnGitMind 浏览器插件 ColorPick Eyedropper:取色器 软件类 Docker Docker - 从入门到实践 Go Golang tuto…...
索引——电子学
电子学 教程 2N2222简介及用Arduino模拟 创意电子学:第000课——注册Tinkercad 网站账号 创意电子学-第01课:点亮LED 创意电子-第05课:串联和并联 创意电子学-第04课:使用欧姆定律 创意电子学-第03课:初学者如何…...

【学习笔记】A2X通信的协议(九)- 广播远程ID(BRID)
3GPP TS 24.577 V18.1.0的技术规范,主要定义了5G系统中A2X通信的协议方面,特别是在PC5接口和Uu接口上的A2X服务。以下是文件的核心内容分析: 7. 广播远程ID(BRID) 7.1 概述 本条款描述了以下程序: 在用…...
HoloLens 和 Unity 空间坐标系统
所有的 3D 图形应用程序都使用笛卡尔坐标系统来推理虚拟物体的位置和朝向。 这些坐标系建立三个垂直轴:X、Y 和 Z。 添加到场景的每个对象在其坐标系中都有一个 XYZ 位置。 Windows 调用在物理世界中具有实际意义的坐标系统,该系统以米为单位表示其坐…...

【npm】如何将开发的vite插件发布到npm
前言 简单说下 npm 是什么: npm 是一个 node 模块管理工具,也是全球最大的共享源。 npm 工具与 nodejs 配套发布,便利开发人员共享代码。npm 主要包括 npm 官方网站、CLI(控制台命令行工具)、和 registry(…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...

tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...