USACO18DEC部分题 补题报告
一、Convention S
P5119 [USACO18DEC] Convention S
题意
给定大巴的数量,容量,奶牛的数量和到来的时间,要求合理安排大巴的发车时间使奶牛的等待时间最小,求出奶牛最大等待时间的最小值
思路
本题使用二分,输入之后进行排序,右端点为时间最大差值,二分中计算当前限制的等待时间下所需大巴数量,满足则向左继续二分,不满足则向右继续二分,直至左右端点同为一点
代码
#include<bits/stdc++.h>
using namespace std;
int n,m,c,t[100005],cnt,b[100005];
int main(){
// freopen("convention.in","r",stdin);
// freopen("convention.out","w",stdout);scanf("%d%d%d",&n,&m,&c);for(int i=1;i<=n;i++){scanf("%d",&t[i]);}sort(t+1,t+n+1);int l=0,r=t[n]-t[1];while(l<r){int mid=(l+r)/2;int k=1,j=1;for(int i=1;i<=n;i++){if(t[i]-t[j]>mid||i-j+1>c){j=i;k++;}}if(k<=m){r=mid;}else{l=mid+1;}}printf("%d\n",l);
// fclose(stdin);
// fclose(stdout);return 0;
}
二、Convention II S
P5120 [USACO18DEC] Convention II S
题意
给定奶牛的数量以及每个奶牛吃草的开始时间和吃草的用时,按照资历顺序输入,计算所有奶牛在队伍里等待的时间的最大值
思路
首先使用结构体记录每个奶牛的吃草开始时间,吃草用时和她的资历,然后按照到达时间的顺序进行排序,若时间相同,靠资历排序,然后按照时间顺序遍历每一只奶牛,若奶牛到达时有奶牛在吃,她必须等待(当前时间大于等于她到达的时间),就把她放进队列里比较,若她来时草地是空的(当前时间小于她到达的时间)且队列不为空(前面有需要等待的奶牛),我们就需要处理队列中的牛了,把当前时间和最长等待时间更新,进行完第二种情况的操作后,有可能处理完队列中的牛(队列为空),需要更新当前时间,有可能没有处理完队列里所有的奶牛当前时间就超过当前奶牛的到达时间了,我们就需要把这个奶牛也放到队列里去,遍历结束之后我们就可以得到最大的等待时间了
值得注意的是,这个题中我们用到了优先队列,优先队列的排序应按照奶牛的资历来进行,资历大的放前面,所以我们需要进行一个重载运算符的操作
代码
#include<bits/stdc++.h>
using namespace std;
struct node{int id;long long a,t;
}cow[100005];
bool cmp(node x,node y){if(x.a!=y.a){return x.a<y.a;}return x.id<y.id;
}
bool operator < (node x,node y){return x.id>y.id;
}
long long zeit,mtime,n;
priority_queue<node> q;
int main(){
// freopen("convention.in","r",stdin);
// freopen("convention.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++){cow[i].id=i;scanf("%lld%lld",&cow[i].a,&cow[i].t);}sort(cow+1,cow+1+n,cmp);for(int i=1;i<=n;i++){node c;if(cow[i].a<=zeit){c.id=cow[i].id,c.a=cow[i].a,c.t=cow[i].t;q.push(c);continue;}while(cow[i].a>zeit&&!q.empty()){c=q.top();q.pop();mtime=max(mtime,zeit-c.a);zeit+=c.t;}if(!q.empty()){c.id=cow[i].id,c.a=cow[i].a,c.t=cow[i].t;q.push(c);continue;}zeit=cow[i].a+cow[i].t;}printf("%d",mtime);
// fclose(stdin);
// fclose(stdout);return 0;
}
三、Mooyo Mooyo S
P5121 [USACO18DEC] Mooyo Mooyo S
题意
给定n和k以及棋盘的初始状态,棋盘是高n格,宽10格,每个格都有1,2,3,…,9共9种颜色,0代表空气,超过k个相同颜色的联通块会被消掉,然后其他格子受重力影响会落到底处,求最终的棋盘的状态
思路
题意就是计算联通块的数量,若大于给定的k就消掉(标记成0),然后把悬空的块都转移到地上,具体计算联通块的数量需要利用dfs,还需要定义一个布尔数组来确定是否被访问过,被访问过的格子不能再次访问,当然,每次操作结束后它都需要初始化,一旦统计出来的联通块数量超过了k,把所有访问过的点都赋值为‘0’,接下来就要进行下落的过程,这个过程需要倒着进行,从下向上进行,若发现有块,就需要尽可能的把它向下平移,到达下面有块或者棋盘界限的地方,整个过程大概就是这样的,我们还需要建立布尔变量来判断是否有活动(块下落或是消块),若没有,说明这个状态已经稳定
代码
#include<bits/stdc++.h>
using namespace std;
int fx[5]={0,0,1,0,-1};
int fy[5]={0,1,0,-1,0};
bool visited[105][15],flag;
int sum,n,k;
char mapp[105][15];
void dfs(int x,int y,int s){visited[x][y]=1;for(int i=1;i<=4;i++){int xx=x+fx[i];int yy=y+fy[i];if(visited[xx][yy]==0&&mapp[xx][yy]==s) {sum++;dfs(xx,yy,s);}}
}
void down(){for(int i=n;i>=1;i--) {for(int j=1;j<=10;j++) {if(mapp[i][j]!='0'){int k=i;while(mapp[k+1][j]=='0'&&k<=n){k++;}if(k!=i){mapp[k][j]=mapp[i][j];mapp[i][j]='0';}}}}
}
int main(){
// freopen("convention.in","r",stdin);
// freopen("convention.out","w",stdout);scanf("%d%d",&n,&k);for(int i=1;i<=n;i++) {for(int j=1;j<=10;j++) {cin>>mapp[i][j];}}flag=1;while(flag){flag=0;for(int i=1;i<=n;i++) {for(int j=1;j<=10;j++) {if(mapp[i][j]!='0') {sum=1;memset(visited,0,sizeof(visited));dfs(i,j,mapp[i][j]);if(sum>=k){for(int k=1;k<=n;k++){for(int l=1;l<=10;l++){if(visited[k][l]){mapp[k][l]='0';}}}flag=1;}}}}if(flag){down();}}for(int i=1;i<=n;i++) {for(int j=1;j<=10;j++) {cout<<mapp[i][j];}printf("\n");}
// fclose(stdin);
// fclose(stdout);return 0;
}
相关文章:
USACO18DEC部分题 补题报告
一、Convention S P5119 [USACO18DEC] Convention S 题意 给定大巴的数量,容量,奶牛的数量和到来的时间,要求合理安排大巴的发车时间使奶牛的等待时间最小,求出奶牛最大等待时间的最小值 思路 本题使用二分,输入之…...
聊一聊一些关于npm、pnpm、yarn的事
前言 整理了最近的闲聊,话题是前端各个包管理器,如果分享的不对或者有异议的地方,麻烦请及时告诉我~ 耐心看完,也许你会有所收获~ 概述 本文阅读时间:10-15分钟左右; 难度:初级,…...
c语言多功能计算软件170
定制魏:QTWZPW,获取更多源码等 目录 题目 要求 主要代码片段 题目 设计一个计算器软件,具备如下功能提示界面。 要求 设计出界面,注意界面名称最后为自己的姓名;(20分)能够实现加、减、乘、…...
python图形化展示数据:保存为图片后查看
python debug时需要图像化展示数据,有三种方法。 方法一:t是值在[0, 255]之间的numpy数组,形状为 [ x ∗ x ∗ 3 ] [x*x*3] [x∗x∗3],其中3为channel数。(使用t.permute(1,2,0)变换通道,使用np.squeeze(t…...
PostgreSQL入门到实战-第二十四弹
PostgreSQL入门到实战 PostgreSQL中表连接操作(八)官网地址PostgreSQL概述PostgreSQL中CROSS JOIN命令理论PostgreSQL中CROSS JOIN命令实战更新计划 PostgreSQL中表连接操作(八) 使用PostgreSQL CROSS JOIN从连接的表中生成行的笛卡尔乘积。 官网地址 声明: 由于操作系统, 版…...
Spring Boot 统一功能处理(二)
本篇主要介绍Spring Boot统一功能处理中的统一数据返回格式。 目录 一、定义统一的返回类 二、配置统一数据格式 三、测试配置效果 四、统一格式返回的优点 五、源码角度解析String问题 一、定义统一的返回类 在我们的接口在处理请求时,返回的结果可以说是参…...
Flutter开发基础之动画专题
Flutter开发基础之动画专题 动画设计的作用是让UI界面更流畅、直观,能够有效的提升用户体验。 在Flutter开发中,动画分为多个方面: 基础动画、页面交互动画、绘图动画、矩阵变换等。 基本动画 常用的基本动画有透明度动画、缩放动画、旋转动…...
PHP 图片裁剪类封装
PHP工具类 图片裁剪类封装 <?php namespace App\Utils;/*** 图片裁剪工具类* author 田小涛* date 2020年7月23日* comment**/ class ImageCropUtils {private $sImage;private $dImage;private $src_file;private $dst_file;private $src_width;private $src_height;priv…...
Android 14.0 SystemUI修改状态栏电池图标样式为横屏显示
1.概述 在14.0的系统rom产品定制化开发中,对于原生系统中SystemUId 状态栏的电池图标是竖着显示的,一般手机的电池图标都是横屏显示的 可以觉得样式挺不错的,所以由于产品开发要求电池图标横着显示和手机的样式一样,所以就得重新更换SystemUI状态栏的电池样式了 如图: 2.S…...
FPGA:图像数字细节增强算法(工程+仿真+实物,可用毕设)
目录 日常唠嗑一、视频效果二、硬件及功能1、硬件选择2、功能3、特点 未完、待续……四、工程设计五、板级验证六、工程获取 日常唠嗑 有2个多月没写文章了,又是老借口:“最近实在是很忙”🤣,不过说真,确实是比较忙&am…...
Android netty的使用
导入netty依赖 implementation io.netty:netty-all:4.1.107.Final使用netty 关闭netty /*** 关闭*/private void closeSocket() {LogUtils.i(TAG, "closeSocket");if (nettyManager ! null) {nettyManager.close();nettyManager null;}if (nettyExecutor ! null) {…...
苹果电脑启动磁盘是什么意思 苹果电脑磁盘清理软件 mac找不到启动磁盘 启动磁盘没有足够的空间来进行分区
当你一早打开苹果电脑,结果系统突然提示: “启动磁盘已满,需要删除部分文件”。你会怎么办?如果你认为单纯靠清理废纸篓或者删除大型文件就能释放你的启动磁盘上的空间,那就大错特错了。其实苹果启动磁盘的清理技巧有很…...
【Java SE】多态
🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 多态1.1 多态是什么1.2 多态的意义1.3 多态的实现条件 2. 重写2.1 重写的概念2.2 重写的规则2.3 重写与重…...
Yarn vs npm的大同小异Yarn是什么?
Yarn vs npm的大同小异&Yarn是什么? 一、Yarn、npm是什么?二、Yarn vs npm:特性差异总结 一、Yarn、npm是什么? npm是Node.js的包管理器,是由Chris Korda维护。 npm,它全称为Node Package Manager,是…...
1.Godot引擎|场景|节点|GDS|介绍
Godot介绍 Godot是一款游戏引擎 可以通过在steam商城免费下载 初学者和编程基础稍差的推荐学习使用GDScript,和python有些相似 Godot节点 Godot的开发思想——围绕节点 节点的特征与优势 最常用基本的开发组件大部分都具有具体的功能,如图片…...
springboot3 redis 实现分布式锁
分布式锁介绍 分布式锁是一种在分布式系统中用于控制不同节点上的进程或线程对共享资源进行互斥访问的技术机制。 在分布式环境中,多个服务可能同时访问和操作共享资源,如数据库、文件系统等。为了保持数据的一致性和完整性,需要确保在同一…...
2024年第十四届MathorCup数学应用挑战赛A题思路分享(妈妈杯)
A题 移动通信网络中PCI规划问题 物理小区识别码(PCI)规划是移动通信网络中下行链路层上,对各覆盖小区编号进行合理配置,以避免PCI冲突、PCI混淆以及PCI模3干扰等现象。PCI规划对于减少物理层的小区间互相干扰(ICI),增加物理下行控制信道(PDCCH)的吞吐量有着重要的作用,尤其…...
运动听歌哪款耳机靠谱?精选五款热门开放式耳机
随着人们对运动健康的重视,越来越多的运动爱好者开始关注如何在运动中享受音乐。开放式蓝牙耳机凭借其独特的设计,成为了户外运动的理想选择。它不仅让你在运动时能够清晰听到周围环境的声音,保持警觉,还能让你在需要时与他人轻松…...
Kubernetes学习笔记12
k8s核心概念:控制器: 我们删除Pod是可以直接删除的,如果生产环境中的误操作,Pod同样也会被轻易地被删除掉。 所以,在K8s中引入另外一个概念:Controller(控制器)的概念,…...
Qt Designer 控件箱中的控件介绍及布局比列分配
控件箱介绍 Qt Designer的控件箱(Widget Box)包含了各种常用的控件,用户可以通过拖放的方式将这些控件添加到窗体设计器中,用于构建用户界面。以下是一些常见控件箱中的控件及其功能的讲解: 1.基本控件&#…...
蓝桥集训之三国游戏
蓝桥集训之三国游戏 核心思想:贪心 将每个事件的贡献值求出 降序排序从大到小求和为正是即可 #include <iostream>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int N 100010;int a[N],b[N],c[N];…...
MySQL知识整理
MySQL知识整理 基础第一讲:基础架构:一条SQL查询语句是如何执行的?架构尽量减少长连接的原因和方案为什么尽量不要依赖查询缓存 索引第四讲:深入浅出索引(上)第五讲:深入浅出索引(下…...
代码随想录算法训练营第36天| 435. 无重叠区间、 763.划分字母区间*、56. 合并区间
435. 无重叠区间 力扣题目链接 代码 示例代码 class Solution { public:// 按照区间右边界排序static bool cmp (const vector<int>& a, const vector<int>& b) {return a[1] < b[1];}int eraseOverlapIntervals(vector<vector<int>>&a…...
SpringBoot整合Nacos
文章目录 nacosnacos下载nacos启动nacos相关配置demo-dev.yamldemo-test.yamluser.yaml 代码pom.xmlUserConfigBeanAutoRefreshConfigExampleValueAnnotationExampleDemoApplicationbootstrap.yml测试结果补充.刷新静态配置 nacos nacos下载 下载地址 一键傻瓜试安装即可,官…...
vue3 浅学
一、toRefs 问题: reactive 对象取出的所有属性值都是⾮响应式的 解决: 利⽤ toRefs 可以将⼀个响应式 reactive 对象的所有原始属性转换为 响应式的 ref 属性 二、hook函数 将可复⽤的功能代码进⾏封装,类似与vue2混⼊。 三、ref:获取元素或者组件 let …...
三小时使用鸿蒙OS模仿羊了个羊,附源码
学习鸿蒙arkTS语言,决定直接通过实践的方式上手,而不是一点点进行观看视频再来实现。 结合羊了个羊的开发思路,准备好相应的卡片素材后进行开发。遇到了需要arkTS进行解决的问题,再去查看相应的文档。 首先需要准备卡片对应的图片…...
如何使用 ArcGIS Pro 制作热力图
热力图是一种用颜色表示数据密度的地图,通常用来显示空间分布数据的热度或密度,我们可以通过 ArcGIS Pro 来制作热力图,这里为大家介绍一下制作的方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的POI数…...
SpringBoot之集成Redis
SpringBoot之集成Redis 一、Redis集成简介二、集成步骤2.1 添加依赖2.2 添加配置2.3 项目中使用 三、工具类封装四、序列化 (正常都需要自定义序列化)五、分布式锁(一)RedisTemplate 去实现场景一:单体应用场景二&…...
mybatis-plus与mybatis同时使用别名问题
在整合mybatis和mybatis-plus的时候发现一个小坑,单独使用mybatis,配置别名如下: #配置映射文件中指定的实体类的别名 mybatis.type-aliases-packagecom.jk.entity XML映射文件如下: <update id"update" paramete…...
MySQL基础知识——MySQL日志
一条查询语句的执行过程一般是经过连接器、 分析器、 优化器、 执行器等功能模块, 最后到达存储引擎。 那么, 一条更新语句的执行流程又是怎样的呢? 下面我们从一个表的一条更新语句进行具体介绍: 假设这个表有一个主键ID和一个…...
官方网站建设公司排名/seo快速排名优化公司
dubbo 2.8.4 出现找不到dubbo:annotation的错误,其实这个不会影响程序正确的运行,但是看到有红叉心里肯定非常不爽: 解决办法是,将dubbo-2.8.4.jar包,后缀改成.zip,然后解压: 如果不想对xml进行…...
房产网站制作找哪家/全球最牛的搜索引擎
helloworld 步骤 编写前端代码编写后端端代码(略)添加菜单 配置权限官方文档跳转 笔记 添加菜单前端代码 <template><div>{{ msg }}</div> </template><script>import {getAction} from /api/manageexport default {d…...
空调维修技术支持东莞网站建设/腾讯新闻潍坊疫情
文章目录前言一:测试步骤1.授权2.信息收集3.扫描4.利用5.提权(shell环境、桌面环境、最高权限)6.灭迹7.留后门8.渗透测试报告二、具体流程1.scanport扫描445端口2.利用IPC$: 进行破解:NTscan3.相关命令行4.制作5.植入&…...
怎么做阿里国际网站的数据分析/最新全国疫情消息
1. springMVC中controller的几种返回类型 Controller方法的返回值可以有以下几种: 1、返回ModelAndView 返回ModelAndView时最常见的一种返回结果。需要在方法结束的时候定义一个ModelAndView对象,并对Model和View分别进行设置。 2、返回String 1&a…...
闵行做网站费用/清远网站seo
目录 在前面的章节中,我们是通过动态创建子进程(或子线程)来实现并发服务器的。这样做有如下缺点: 动态创建进程(或线程)是比较耗费时间的,这将导致较慢的客户响应。动态创建的子进程…...
展厅设计案例100例/全国最好网络优化公司
ARM开发经典学习网站推荐 1. EG3 关于嵌入式开发的站点,提供非常多关于嵌入式开发的资料。包括开发公司,技术文档,免费资源等等。版面包括busses & boards,embedded software,dsp,embedded systems,opensource,rtos,embedded chips,system-on-a-chip 等等。 强烈推荐…...