【题解】 模拟赛2 题解

news2025/2/3 12:48:58

T1

假设商品价格为x
618:int(x*0.66)
211:x-(x/100)*35
两者比较一下大小即可

#include<bits/stdc++.h>
using namespace std;

int x,x1,x2;

int main(){
	scanf("%d",&x);
	x1 = x*0.66;
	x2 = x-(x/100)*35;
	if (x1 == x2) printf("both\n%d",x1);
	if (x1 > x2) printf("211\n%d",x2);
	if (x1 < x2) printf("618\n%d",x1);
	return 0;
}

T2

假设一个数x
令S= x 2 x^2 x2
如何从S的末尾中取出和x相同位数的数呢?
我们需要知道x的位数为m
那么令S% 1 0 m 10^m 10m就能得到末尾的数

如果相同,那么就是自守数,累加后输出即可

#include<bits/stdc++.h>
using namespace std;

int a,b,cnt;
int f[101000];

bool Check(int x){
	int X = x*x,XX = x;
	int xx = 1;
	while (x) xx*=10,x/=10;
	if (X%xx == XX) return 1;
	return 0;
}

void Work(int x){
	if (Check(x)) f[++cnt] = x;
	return;
}

int main(){
	scanf("%d %d",&a,&b);
	for (int i = a; i <= b; i++) Work(i);
	printf("%d\n",cnt);
	for (int i = 1; i <= cnt; i++) printf("%d\n",f[i]);
}

T3

首先看题目:
这个油管是东西向
所以我们只需要考虑油田的纵坐标而不需要管横坐标
那么如何放置主管道才能使距离和最小呢?
我们假设先把油管放到最下面的油井中
此时得到一个距离 S S S
那么,我们将管道往上移一格
此时距离会变成多少呢?
不难想出
此时,第一个油井到他的距离会多1,而第2~n个油井的距离到他的距离就会少1
减少的距离大于增加的距离,就意味着我们仍然可以往上移

于是我们一直移……
移到什么时候,减少的会和增加的相等,或者减少的会小于增加的呢?
不难想到,就是中间的时候,减少的会等于增加的,再上去,减少的就会小于增加的,距离就会变长了

所以,距离最小的时候,就是把主管道放在中位数位置的时候。

那么知道主管道的位置了,距离和算一下也就简单了

#include<bits/stdc++.h>
using namespace std;

const int N = 1e5+100;
int n;
int a[N],ans = 0;


int main(){
	freopen("1.in","r",stdin);
	freopen("1.out","w",stdout);
	scanf("%d",&n);
	for (int i = 1; i <= n; i++) scanf("%d %d",&a[i],&a[i]);
	sort(a+1,a+n+1);
	int d = a[(1+n)/2];
	for (int i = 1; i <= n; i++) ans+=abs(d-a[i]);
	printf("%d",ans);
}

T4

这道题是一个搜索
假设我们先不管船只放置不合理的情况
我们先把所有的船只数量算出来

设一个数组 f [ i ] [ j ] f[i][j] f[i][j]来记录位置 ( i , j ) (i,j) (i,j)是否被搜索过
遍历一遍海域,如果当前位置是 # \# #并且还没有被搜索过,说明当前位置出现了一艘新船,我们就开始搜索
怎么搜素呢?
从当前位置开始上下左右开始扩散,如果扩散到的地方未搜索过且是’#',就扩散过去,直到当前船搜索完,把扩散过的地方打标记表示扩散过即可。
这样做一遍我们就能知道船只的数量

但是当前船只的形状不一定是矩形。
如何判断当前船只的形状是否是矩形呢?

我们考虑矩形的特性:
有一个左上角端点(x,y),一个右下角端点(xx,yy)
也就是说我们只需要知道一个矩形的左上角和右下角我们就能确定一个矩形。

左上角坐标即最小横坐标,最小纵坐标
右下角坐标即最大横坐标,最大纵坐标

对于每条船,我们记录他的左上角端点,右下角端点
这样就确定了一个矩形范围
什么时候这艘船是合法的呢?
在这个范围内全是 # \# #,这就说明这个矩形范围内全是船只,放置合理。
同理,只要出现一个 ′ . ′ '.' .,那么当前这个船只的形状就不是一个合法的矩形
即放置不合理

这样就做出了判断

#include<bits/stdc++.h>
using namespace std;

const int N = 2e3+10;
const int dx[4] = {0,0,1,-1};
const int dy[4] = {1,-1,0,0};

int n,m,cnt;
int Minx[N*N],Miny[N*N],Maxx[N*N],Maxy[N*N];
int a[N][N],f[N][N];

void Dfs(int x,int y){
	if (x<1 || y<1 || x>n || y>m) return;
	if (a[x][y] == 0) return;
	if (f[x][y]) return;
	f[x][y] = 1;
	Minx[cnt] = min(Minx[cnt],x);
	Miny[cnt] = min(Miny[cnt],y);
	Maxx[cnt] = max(Maxx[cnt],x);
	Maxy[cnt] = max(Maxy[cnt],y);//记录左上角端点,右下角端点
	for (int i = 0; i < 4; i++) Dfs(x+dx[i],y+dy[i]);
}

bool Check(int x){
	for (int i = Minx[x]; i <= Maxx[x]; i++)
	  for (int j = Miny[x]; j <= Maxy[x]; j++)
	    if (a[i][j] == 0) return 0;
	return 1;
}

int main(){
	scanf("%d %d",&n,&m);
	for (int i = 1; i <= n; i++)
	  for (int j = 1; j <= m; j++){
	  	  char ch = getchar();
	  	  while (ch!='.' && ch!='#') ch = getchar();
	  	  a[i][j] = (ch == '#');
	  }
	for (int i = 1; i <= n*m; i++) Minx[i] = n*m+1,Miny[i] = n*m+1;//初始化
	for (int i = 1; i <= n; i++)
	  for (int j = 1; j <= m; j++)
	  if (!f[i][j] && a[i][j]) ++cnt,Dfs(i,j);//出现新船只
	bool F = 1;
	for (int i = 1; i <= cnt; i++)
	  if (!Check(i)) {F = 0; break;}//判断是否出现不合理的船只
	if (F) printf("There are %d ships.",cnt);
	else printf("Bad placement.");
	return 0;
}

另一种判断方法

其实并不是只有上述一种判断方法。
我们考虑什么时候一条船的放置方式会不合法
肯定是在某个地方出现了空隙
肯定是在某个地方出现了如下的情况:
在这里插入图片描述

假设 a [ i ] [ j ] = 1 a[i][j]=1 a[i][j]=1表示当前位置是#,否则就是’.’
出现上述情况意思就是:
a [ i ] [ j ] + a [ i + 1 ] [ j ] + a [ i ] [ j + 1 ] + a [ i + 1 ] [ j + 1 ] = = 3 a[i][j]+a[i+1][j]+a[i][j+1]+a[i+1][j+1] == 3 a[i][j]+a[i+1][j]+a[i][j+1]+a[i+1][j+1]==3
说明中间出现了空隙,肯定无法构成一个完整的矩形

遍历一遍整个图看一下是否存在这样的情况即可

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

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

相关文章

浏览器打开PDF标题乱码

问题 使用 itext5 用pdf模板生成预览pdf乱码问题 解决办法 使用pdf编辑器打开之后&#xff0c;选择 文件>> 属性&#xff0c; 修改乱码的标题。

【业务功能篇45】SSM整合shiro项目:web.xml执行顺序

web.xml 的加载顺序是&#xff1a;ServletContext -> context-param -> listener -> filter -> servlet 学习shiro时&#xff0c;需要配置shiro &#xff0c;我们需要在filter过滤器之前&#xff0c;先初始化好shiro组件&#xff0c;不然请求认证无法走到shiro,根据…

plt.text()函数解析

plt.text(x, y, s, fontsize, verticalalignment,horizontalalignment,rotation , *kwargs) 参数&#xff1a; x,y:表示坐标值上的值s:表示说明文字fontsize:表示字体大小verticalalignment&#xff1a;垂直对齐方式 &#xff0c;参数&#xff1a;[ ‘center’ | ‘top’ | ‘…

【公益】Q学友联合东湖街道开展“星级大厨来做客”技能培训活动

“大家一定要用温水和面&#xff0c;和面时要注意方向和力度&#xff0c;往同一个方向揉面……”在东湖街道综合文体服务中心一楼的中式面点培训现场&#xff0c;飘荡着阵阵面香&#xff0c;充斥着欢声笑语。 为进一步丰富居民业余文化生活&#xff0c;提高灵活就业人员的职业技…

手把手教你搭建SpringCloud项目:什么是微服务?一看就会系列!

什么是微服务&#xff1f;一看就会系列&#xff01; 一、手把手教你搭建SpringCloud项目&#xff08;一&#xff09;图文详解&#xff0c;傻瓜式操作 二、手把手教你搭建SpringCloud项目&#xff08;二&#xff09;生产者与消费者 三、手把手教你搭建SpringCloud项目&#x…

mpVue 微信小程序基于vant-weapp 组件的二次封装TForm 表单组件(修改源码插槽使用)

一、前言 1、mpVue微信小程序不支持动态组件&#xff08;<component> &#xff09; 2、mpVue微信小程序不支持动态属性及事件穿透&#xff08;$attrs和$listeners&#xff09; 3、mpVue微信小程序不支持render函数 二、最终效果 三、配置参数&#xff08;Attributes&…

Qt6 Qt Quick UI原型学习QML第三篇

文章目录 效果QML代码ClickableImage.qml文件Image&#xff08;图片&#xff09;元素 解释 MyQML.qml文件 解释&#xff1a;Window元素、Item元素、Image元素、MouseArea元素、Column元素、Row元素、Grid元素、Flow元、Repeater元素 效果 QML代码 ClickableImage.qml文件 图像…

[JavaScript] 第三章 Chrome 浏览器中执行 JavaScript

系列文章目录 [JavaScript] 第一章 暂无 [JavaScript] 第一章 暂无 [JavaScript] 第三章 Chrome 浏览器中执行 JavaScript 文章目录 系列文章目录前言1、准备工作1.1、创建html工程1.2、创建html文件夹&#xff0c;存放html文件1.3、创建JavaScript演示html1.4、通过idea打开页…

Unity打包窗口化放大、缩小、拖拽功能、无边框设置 C#

Unity打包Windows窗口实现放大、缩小、拖拽、无边框 文章目录 Unity打包Windows窗口实现放大、缩小、拖拽、无边框前言一、引入 user32.dll二、使用步骤1.引入库2.功能封装3.效果图如下&#xff0c;绑定自定义按钮 总结 前言 Unity无边框设置、窗口化放大、缩小、拖拽 提示&am…

蓝牙耳机选购攻略:开放式耳机篇!如何选购开放式耳机?开放式蓝牙耳机哪些品牌比较好?过来人告诉你如何选购开放式耳机!

作为一个耳机爱好者&#xff0c;最近更是喜欢上了开放式蓝牙耳机&#xff0c;实际用过的起码有十几款&#xff0c;但其实最终能留下来的也只有四五款。由于前期并不知道应该如何选择开放式耳机&#xff0c;经常都会高价买到些质量差、音质也不好、漏音大的开放式耳机&#xff0…

DKN和KGC阅读

1. DKN 作者将外部知识图包含的知识融入新闻嵌入。 &#xff08;1&#xff09;将新闻标题单词词嵌入&#xff0c;单词链接的实体嵌入&#xff0c;以及实体的上下文嵌入(邻居实体嵌入的平均)建模为CNN输入的三个通道。 &#xff08;2&#xff09;然后使用KCNN模型&#xff0c…

排序【数据结构】

1、排序的概念 排序&#xff1a; 所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。稳定性&#xff1a; 假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序…

一个月学通Python(十九):Cookie和Session是什么(Web开发)

专栏介绍 结合自身经验和内部资料总结的Python教程&#xff0c;每天3章&#xff0c;1个月就能全方位的完成Python的学习并进行实战开发&#xff0c;学完了定能成为大佬&#xff01;加油吧&#xff01;卷起来&#xff01; 全部文章请访问专栏&#xff1a;《Python全栈教程&…

C++:这门语言优势在哪?命名空间以及缺省参数?

文章目录 C的优势解决命名空间的问题 缺省参数 C的优势 C和C语言比起来有许多优势&#xff0c;这里我们先举一个例子&#xff0c;后续进行补充 解决命名空间的问题 首先看这样的代码&#xff1a; #include <stdlib.h> #include <stdio.h>int rand 0;int main(…

k8s服务发现之第二弹Service详解

创建 Service Kubernetes Servies 是一个 RESTFul 接口对象&#xff0c;可通过 yaml 文件创建。 例如&#xff0c;假设您有一组 Pod&#xff1a; 每个 Pod 都监听 9376 TCP 端口每个 Pod 都有标签 appMyApp apiVersion: v1 kind: Service metadata:name: my-service spec:s…

创建users子应用

1.创建&#xff1a;(venv) xxxx>python manage.py startapp users 2.移动到apps里面&#xff1b; 3.在settings里面注册子应用&#xff1b; # 注册子应用 apps/users apps/users/apps name apps.users 这个路径是什么就写什么 INSTALLED_APPS [ # 用[../namage.py st…

架构训练营学习笔记:4-3存储架构模式之分片架构和分区架构

分片架构的本质&#xff1a; 分片架构能提升写性能和存储性能&#xff0c;对应的主备架构的本质是备份&#xff0c;主从架构本质提升读性能。 分片架构的两个关键点&#xff1a;分片规则跟路由规则 分片规则&#xff1a; 选择基数比较大的某个数据键值&#xff0c;让数据均匀…

第七章 集成学习

文章目录 第七章 集成学习7.1个体和集成7.2Boosting和AdaBoost7.3Bagging和随机森林7.3.1Bagging7.3.2随机森林 7.4结合策略7.4.1平均法7.4.2投票法7.4.3学习法 7.6实验&#xff1a;Adaboost 第七章 集成学习 7.1个体和集成 集成学习通过构建并结合多个学习器来完成学习任务&…

TS报错Cannot find module ‘xxx‘ or its corresponding type declarations

最近使用 vite vue3 ts 开发一个文本标注的 web 平台&#xff0c;在项目中使用了一个 js-mark 的 npm 包&#xff0c;但是在 import 导入后出现了 TS 报错&#xff1a;TS2307: Cannot find module js-mark or its corresponding type declarations.、无法解析模块 js-mark 的…

Safe Policy Optimization 复现

复现结果 在 PointGoal1、CarGoal1、Velocity-Walker2d 三个任务上测试了 RCPO&#xff0c;CRPO 以及 Safe-Policy-Optimization 中实现的 CPO&#xff0c;PPO-Lag 算法。 CarGoal PointGoal PointGoal1 和 CarGoal1 任务相对比较困难&#xff0c;在探索初期就很容易违反约束…