当前位置: 首页 > news >正文

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 aiai±1h,那么那个建筑也会随着他倒下的方向倒下。
那么:第 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。 所以说&#xff0c;我们这道题可以采用贪心算法&#xff0c;优先取大的减去目前零钱最大的…...

【C++】 C++ 编写 鸡兔同笼程序

文章目录 “鸡兔同笼”问题是一个经典的数学问题&#xff0c;要求根据总头数和总腿数来计算鸡和兔的数量。假设鸡有 2 条腿&#xff0c;兔有 4 条腿。可以通过以下步骤求解这个问题&#xff1a; 1 .设鸡的数量为 x&#xff0c;兔的数量为 y。2.根据题意&#xff0c;我们有以下…...

[动画详解]LeetCode151.翻转字符串里的单词

&#x1f496;&#x1f496;&#x1f496;欢迎来到我的博客&#xff0c;我是anmory&#x1f496;&#x1f496;&#x1f496; 又和大家见面了 欢迎来到动画详解LeetCode算法系列 用通俗易懂的动画让算法题不再神秘 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成…...

如何使用 ArcGIS Pro 制作地震动画

在做某些汇报的时候&#xff0c;除了图文&#xff0c;如果有动画肯定会成为加分项&#xff0c;这里为大家介绍一下如何使用 ArcGIS Pro 制作地震动画&#xff0c;希望能对你有所帮助。 添加时间 在图层属性内&#xff0c;选择时间选项卡&#xff0c;图层时间选择每个要素具有…...

Unity 初步了解

1.Unity 是啥 Unity是一个实时3D互动内容创作和运营平台。它可以帮助游戏开发、美术、建筑、汽车设计、影视等行业的创作者将创意变为现实。Unity平台提供了一套完善的软件解决方案&#xff0c;用于创作、运营和变现任何实时互动的2D和3D内容&#xff0c;支持的平台包括手机、…...

爬虫学习(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&#xff0c;Gravity Scale 重力参数&#xff0c;是一个乘量参数&#xff0c;调整为0则不受重力影响。 2&#xff0c;Sleeping Mode 睡眠模式&#xff0c;分为永不睡眠/开始时睡眠/开始时不睡眠3种。如需要一直碰撞检测可以选择永不睡眠。 BoxCollider 碰撞…...

Vue与Java使用AES加密与解密

CBC模式&#xff08;通过偏移值进行加密&#xff0c;更具安全性&#xff09; 一、VUE&#xff1a; 1、安装 npm install crypto-js 2、编写公用js&#xff08;在common文件夹下创建一个crypto.js&#xff09; 注意&#xff1a;key最少要有16个字符&#xff0c;iv最少6个字符…...

B/S版+java开发的医院绩效考核系统maven+Visual Studio Code 医院绩效考核管理系统 提升医疗服务质量的关键

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

汇昌联信科技:拼多多电商的运营流程有哪些?

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

AI大模型探索之路-训练篇20:大语言模型预训练-常见微调技术对比

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…...

现代 c++ 一:c++11 ~ c++23 新特性汇总

所谓现代 c&#xff0c;指的是从 c11 开始的 c&#xff0c;从 c11 开始&#xff0c;加入一些比较现代的语言特性和改进了的库实现&#xff0c;使得用 c 开发少了很多心智负担&#xff0c;程序也更加健壮&#xff0c;“看起来像一门新语言”。 从 c11 开始&#xff0c;每 3 年发…...

【c++】全面理解C++多态:虚函数表深度剖析与实践应用

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;通过本篇文章&#xff0c;来详细理解多态的内容 目录 1.多态的定义及实现1.1多态的构成条件1.2虚函数的重写1.3 C11 override 和 final1.4重载、覆盖(重写)、隐藏…...

分享四种免费获取SSL的方式

SSL证书目前需要部署安装的网站很多&#xff0c;主要还是基于国内目前对证书的需求度在不断的升高&#xff0c;网站多了、服务器多了之后。网络安全问题就成为了大家不得不面对的一个重要的问题了。SSL证书的作用有很多&#xff0c;这里就不一一详述了&#xff0c;本期作品主要…...

2024.5.14晚训题解

非线性结构没懂的同学多去看看课程回放。 A题Overall Winner 题解 很基础的题目&#xff0c;输入字符串&#xff0c;用计数器去统计一下就好了。 因为赢的次数一样的时候优先判断前面的那个人赢&#xff0c;所以说两个人赢的次数相同的时候我们不必 去记录胜者。 #include<…...

jQuery的选择器与自带函数详解

在前端开发中&#xff0c;jQuery是一个广泛使用的JavaScript库&#xff0c;它极大地简化了HTML文档遍历、事件处理、动画以及AJAX交互等操作。本文将通过一个示例页面&#xff0c;详细介绍jQuery的选择器和一些常用的自带函数。 示例代码优化 首先&#xff0c;我们来优化和完…...

Next.js与SSR:构建高性能服务器渲染应用

1. 创建项目 通过create-next-app脚手架创建一个新的Next.js项目&#xff1a; npx create-next-app my-app cd my-app2. 自动SSR 在Next.js中&#xff0c;每个.js或.jsx文件的组件都会被自动处理为SSR页面。例如&#xff0c;创建一个pages/index.js文件&#xff1a; // pag…...

什么是MVC?什么是SpringMVC?什么是三层架构?

文章目录 应用分层什么是MVC?什么是 SpringMVC&#xff1f;三层架构三层架构和MVC的关系 应用分层 在讲解什么是MVC之前&#xff0c;先来理解一下什么是应用分层。 应用分层是一种软件开发设计思想&#xff0c;将应用程序划分成N个层次&#xff0c;每个层次都分别负责自己的…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

电脑桌面太单调,用Python写一个桌面小宠物应用。

下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡&#xff0c;可以响应鼠标点击&#xff0c;并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...

EEG-fNIRS联合成像在跨频率耦合研究中的创新应用

摘要 神经影像技术对医学科学产生了深远的影响&#xff0c;推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下&#xff0c;基于神经血管耦合现象的多模态神经影像方法&#xff0c;通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里&#xff0c;本研…...