AtCoder Regular Contest 177
A - Excange
题意
用这些零钱能否不找零地买这些物品
思路
因为 500 = 5 × 100 = 10 × 50 = 50 × 10 = 500 × 1 500=5\times 100=10\times 50=50\times 10=500\times 1 500=5×100=10×50=50×10=500×1。
所以说,我们这道题可以采用贪心算法,优先取大的减去目前零钱最大的即可。
#include <iostream>
#include <cstdio>
#include <queue>
#define N 15
using namespace std;
int money[N],n,X[N],sum,p[10]={0,1,5,10,50,100,500};
priority_queue<int> q;
signed main(){cin >> money[1] >> money[2] >> money[3] >> money[4] >> money[5] >> money[6] >> n;for (int i = 1;i <= n;i ++) cin >> X[i],sum += X[i],q.push(X[i]);if (sum > money[1] * 1 + money[2] * 5 + money[3] * 10 + money[4] * 50 + money[5] * 100 + money[6] * 500) return cout << "No",0;for (int i = 6;i;i --) while (!q.empty() && money[i] && q.top() >= p[i]) {int t = q.top();q.pop();t -= p[i];money[i] --;
// cout << i << ' ' << t << ' ' << t + p[i] << ' ' << money[i] << endl;if (t)q.push(t);}if (!q.empty()) cout << "No";else cout << "Yes";return 0;
}
B - Puzzle of Lamps
关灯
有两个选择:
A
:把排最左边的0
变成1
;B
:把排最左边的1
变成0
。
思路
很容易想到先把 A
选择到最右边的位置,然后用 B
把最右边 1
的位置的左边第一个没有 0
的位置,一直重复操作即可。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 50
using namespace std;
int n;
string s;
int ans = 0;
string ans_st = "";
signed main(){cin >> n >> s;int k = n - 1;while (k >= 0) {while (k >= 0 && s[k] != '1') k --;ans += k + 1;for (int i = 0;i <= k;i ++) ans_st += "A";while (k >= 0 && s[k] != '0') k --;ans += k + 1;for (int i = 0;i <= k;i ++) ans_st += "B";}cout << ans << endl << ans_st;return 0;
}
C - Routing
题意
有一个 N × N N\times N N×N 的地图,每个格子上标有红色或者蓝色(R
或者 B
),现在我们有若干次操作把当前格子变成紫色(P
,代表既是 R
的路又是 B
的路)使得:
- 从 ( 1 , 1 ) → ( N , N ) (1,1)\rightarrow(N,N) (1,1)→(N,N) 只走
R
的路能够到达; - 从 ( 1 , N ) → ( N , 1 ) (1,N)\rightarrow(N,1) (1,N)→(N,1) 只走
B
的路能够到达。
求操作的最小次数。
思路
观察特性,发现这里走的两条路径必定会有一个交点。但是这个交点只会被算一次。
我们可以想到用 BFS
搜索 ( 1 , 1 ) → ( N , N ) (1,1)\rightarrow(N,N) (1,1)→(N,N) 以及 ( 1 , N ) → ( N , 1 ) (1,N)\rightarrow(N,1) (1,N)→(N,1) 的路径的最少走不合法的格子的数量,最后相加即可。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#define N 505using namespace std;
const int INF = 1e9;
int n,vis1[N][N],vis2[N][N],fxy[4][2] = {{1,0},{-1,0},{0,-1},{0,1}};
bool a[N][N];
struct pos{int x,y,sp;
};
queue<pos> q;
signed main(){cin >> n;for (int i = 1;i <= n;i ++)for (int j = 1;j <= n;j ++) {char x;cin >> x;a[i][j] = (x == 'R');}for (int i = 0;i <= n + 1;i ++)for (int j = 0;j <= n + 1;j ++)vis1[i][j] = vis2[i][j] = INF;vis1[1][1] = 0;q.push({1,1,0});while(!q.empty()) {pos t = q.front();q.pop();for (int i = 0;i < 4;i ++) {int xx = t.x + fxy[i][0],yy = t.y + fxy[i][1];if (xx < 1 || yy < 1 || xx > n || yy > n) continue;int nt =t.sp;if (!a[xx][yy]) nt ++;if (vis1[xx][yy] <= nt) continue;q.push({xx,yy,nt});vis1[xx][yy] = nt;}}q.push({1,n,0});while(!q.empty()) {pos t = q.front();q.pop();for (int i = 0;i < 4;i ++) {int xx = t.x + fxy[i][0],yy = t.y + fxy[i][1];if (xx < 1 || yy < 1 || xx > n || yy > n) continue;int nt =t.sp;if (a[xx][yy]) nt ++;if (vis2[xx][yy] <= nt) continue;q.push({xx,yy,nt});vis2[xx][yy] = nt;}}cout << vis1[n][n] + vis2[n][1] << endl;return 0;
}
D - Earthquakes(以后更)
题意
有 n n n 个建筑,高度都为 j j j。
有 n n n 次地震,第 i i i 次地震的两级中的一级会倒下,向左和向右倒的概率为 50 % 50\% 50%,而且当前第 i i i 个建筑的位置为 a i a_i ai,如果说 ∣ a i − a i ± 1 ∣ ≤ h |a_i-a_{i\pm1}|\le h ∣ai−ai±1∣≤h,那么那个建筑也会随着他倒下的方向倒下。
那么:第 i i i 次地震时,建筑全都倒下的概率是多少?请将它乘上 2 n 2^n 2n 后输出,可以证明,输出的是整数。
思路
略
相关文章:
AtCoder Regular Contest 177
A - Excange 题意 用这些零钱能否不找零地买这些物品 思路 因为 500 5 100 10 50 50 10 500 1 5005\times 10010\times 5050\times 10500\times 1 5005100105050105001。 所以说,我们这道题可以采用贪心算法,优先取大的减去目前零钱最大的…...

【C++】 C++ 编写 鸡兔同笼程序
文章目录 “鸡兔同笼”问题是一个经典的数学问题,要求根据总头数和总腿数来计算鸡和兔的数量。假设鸡有 2 条腿,兔有 4 条腿。可以通过以下步骤求解这个问题: 1 .设鸡的数量为 x,兔的数量为 y。2.根据题意,我们有以下…...

[动画详解]LeetCode151.翻转字符串里的单词
💖💖💖欢迎来到我的博客,我是anmory💖💖💖 又和大家见面了 欢迎来到动画详解LeetCode算法系列 用通俗易懂的动画让算法题不再神秘 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成…...

如何使用 ArcGIS Pro 制作地震动画
在做某些汇报的时候,除了图文,如果有动画肯定会成为加分项,这里为大家介绍一下如何使用 ArcGIS Pro 制作地震动画,希望能对你有所帮助。 添加时间 在图层属性内,选择时间选项卡,图层时间选择每个要素具有…...
Unity 初步了解
1.Unity 是啥 Unity是一个实时3D互动内容创作和运营平台。它可以帮助游戏开发、美术、建筑、汽车设计、影视等行业的创作者将创意变为现实。Unity平台提供了一套完善的软件解决方案,用于创作、运营和变现任何实时互动的2D和3D内容,支持的平台包括手机、…...

爬虫学习(4)每日一笑
代码 import requests import re import osif __name__ "__main__":if not os.path.exists("./haha"):os.makedirs(./haha)url https://mlol.qt.qq.com/go/mlol_news/varcache_article?docid6321992422382570537&gameid3&zoneplat&webview…...
生产环境节点扩容方案
datanode节点扩缩容(1人天) 注意:新增节点需要走商务,节点扩容需要申请新的license 制品包下载 #内网下载(环境检查脚本) wget --user=admin --password=Y!bC2hx0TN@21cal http://10.69.71.180:8082/artifactory/product/qiudongyang/precheck/os-check20221127.tar…...
Spring线程池配置
配置Spring线程池,特别是ThreadPoolTaskExecutor,通常涉及设置一些关键参数以控制线程池的行为和性能。以下是一些基本的配置步骤: 定义配置类 首先,需要创建一个配置类,使用@Configuration注解标记,并启用异步执行功能,使用@EnableAsync注解。 @Configuration @Enab…...
Unity学习笔记---物理引擎
RigidBody 刚体 1,Gravity Scale 重力参数,是一个乘量参数,调整为0则不受重力影响。 2,Sleeping Mode 睡眠模式,分为永不睡眠/开始时睡眠/开始时不睡眠3种。如需要一直碰撞检测可以选择永不睡眠。 BoxCollider 碰撞…...
Vue与Java使用AES加密与解密
CBC模式(通过偏移值进行加密,更具安全性) 一、VUE: 1、安装 npm install crypto-js 2、编写公用js(在common文件夹下创建一个crypto.js) 注意:key最少要有16个字符,iv最少6个字符…...

B/S版+java开发的医院绩效考核系统maven+Visual Studio Code 医院绩效考核管理系统 提升医疗服务质量的关键
B/S版java开发的医院绩效考核系统mavenVisual Studio Code 医院绩效考核管理系统 提升医疗服务质量的关键 医院绩效评价系统的建设,优化医院绩效管理体系,规范化工作目标的设计、沟通、评价与反馈,改进和提供医院管理人员的管理能力和成效&am…...

汇昌联信科技:拼多多电商的运营流程有哪些?
在当今互联网高速发展的时代,电商平台层出不穷,其中拼多多以其独特的团购模式和低价策略迅速崛起,成为众多消费者和商家的新宠。那么,拼多多电商的运营流程究竟包含哪些环节呢?接下来,我们将从商品上架、营销推广、订…...

AI大模型探索之路-训练篇20:大语言模型预训练-常见微调技术对比
系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…...
现代 c++ 一:c++11 ~ c++23 新特性汇总
所谓现代 c,指的是从 c11 开始的 c,从 c11 开始,加入一些比较现代的语言特性和改进了的库实现,使得用 c 开发少了很多心智负担,程序也更加健壮,“看起来像一门新语言”。 从 c11 开始,每 3 年发…...

【c++】全面理解C++多态:虚函数表深度剖析与实践应用
🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,通过本篇文章,来详细理解多态的内容 目录 1.多态的定义及实现1.1多态的构成条件1.2虚函数的重写1.3 C11 override 和 final1.4重载、覆盖(重写)、隐藏…...

分享四种免费获取SSL的方式
SSL证书目前需要部署安装的网站很多,主要还是基于国内目前对证书的需求度在不断的升高,网站多了、服务器多了之后。网络安全问题就成为了大家不得不面对的一个重要的问题了。SSL证书的作用有很多,这里就不一一详述了,本期作品主要…...
2024.5.14晚训题解
非线性结构没懂的同学多去看看课程回放。 A题Overall Winner 题解 很基础的题目,输入字符串,用计数器去统计一下就好了。 因为赢的次数一样的时候优先判断前面的那个人赢,所以说两个人赢的次数相同的时候我们不必 去记录胜者。 #include<…...
jQuery的选择器与自带函数详解
在前端开发中,jQuery是一个广泛使用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画以及AJAX交互等操作。本文将通过一个示例页面,详细介绍jQuery的选择器和一些常用的自带函数。 示例代码优化 首先,我们来优化和完…...
Next.js与SSR:构建高性能服务器渲染应用
1. 创建项目 通过create-next-app脚手架创建一个新的Next.js项目: npx create-next-app my-app cd my-app2. 自动SSR 在Next.js中,每个.js或.jsx文件的组件都会被自动处理为SSR页面。例如,创建一个pages/index.js文件: // pag…...

什么是MVC?什么是SpringMVC?什么是三层架构?
文章目录 应用分层什么是MVC?什么是 SpringMVC?三层架构三层架构和MVC的关系 应用分层 在讲解什么是MVC之前,先来理解一下什么是应用分层。 应用分层是一种软件开发设计思想,将应用程序划分成N个层次,每个层次都分别负责自己的…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...