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(…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
