AtCoder_abc331
AtCoder_abc331
(这次题真的真的真的好难)
A - Tomorrow
题目大意
有一个\(M\)个月,\(D\)天的日历,请输出\(y年m月z日\)的下一天。
解题思路
先让天数加一,如果超过了\(D\)就让月份加一,天数减\(D\),然后月份同理
代码
// Problem: A - Tomorrow
// Contest: AtCoder - Daiwa Securities Co. Ltd. Programming Contest 2023(AtCoder Beginner Contest 331)
// URL: https://atcoder.jp/contests/abc331/tasks/abc331_a
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
#include<bits/stdc++.h>
using namespace std;
int M,D;
int y,m,d;
int main(){
cin>>M>>D;
cin>>y>>m>>d;
d++;
if(d>D)
m++,d-=D;
if(m>M)
y++,m-=M;
cout<<y<<" "<<m<<" "<<d;
return 0;
}
B - Buy One Carton of Milk
题目大意
一个超市正在卖三种规格的鸡蛋
- 一盒有6个,花\(S\)块钱
- 一盒有8个,花\(M\)块钱
- 一盒有12个,花\(L\)块钱
请求出如果要买\(N\)个鸡蛋最少要花多少钱
解题思路
看到这题我知道三重循环\(O(n^3)\)暴力枚举在数据范围是\(1 \le N \le 100\)肯定是能过,但我不知道犯什么抽去写背包dp,好在最后是没写挂。
代码
// Problem: B - Buy One Carton of Milk
// Contest: AtCoder - Daiwa Securities Co. Ltd. Programming Contest 2023(AtCoder Beginner Contest 331)
// URL: https://atcoder.jp/contests/abc331/tasks/abc331_b
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
#include<bits/stdc++.h>
using namespace std;
int dp[100000];
int n,a[5],b[5]={0,6,8,12};
int main(){
cin>>n>>a[1]>>a[2]>>a[3];
memset(dp,0x3f,sizeof(dp));
dp[0]=0;
for(int i=1;i<=3;i++)
for(int j=b[i];j<=n+12;j++)
dp[j]=min(dp[j],dp[j-b[i]]+a[i]);
int minn=INT_MAX;
for(int i=n;i<=n+12;i++){
minn=min(minn,dp[i]);
}
cout<<minn;
return 0;
}
C - Sum of Numbers Greater Than Me
题目大意
输入一个长度为\(N\)的序列\(A\),对于每一个\(a_i(1 \le i \le N)\),输出所有比\(a_i\)大的数的和
解题思路
这题一眼前缀和,需要注意的是题目中要求输出"所有比\(a_i\)大的数的和",所以输出前缀和的时候要注意把等于\(a_i\)的值排除在外
代码
// Problem: C - Sum of Numbers Greater Than Me
// Contest: AtCoder - Daiwa Securities Co. Ltd. Programming Contest 2023(AtCoder Beginner Contest 331)
// URL: https://atcoder.jp/contests/abc331/tasks/abc331_c
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
#include<bits/stdc++.h>
using namespace std;
int n;
long long mad;
long long a[200005];
long long sum[1000006];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
mad=max(mad,a[i]);
sum[a[i]]+=a[i];
}
for(int i=mad;i>=1;i--)
sum[i]+=sum[i+1];
for(int i=1;i<=n;i++)
cout<<sum[a[i]+1]<<" ";
return 0;
}
(以下为赛后补题)
(未完待续,困死了,明天再补,如果我忘了请看到这的人提醒我一声)
随机推荐
- AVR汇编(二):AVR架构介绍
AVR汇编(二):AVR架构介绍 ATmega328P介绍 ATmega328P是Atmel公司(现Microchip公司)推出的一个基于AVR架构的高性能低功耗单片机,拥有32KB的Flash.1K ...
- JNDI注入的本地搭建和分析
JNDI注入的本地搭建和分析 JNDI概述 JNDI(The java Naming and Directory Interface,java命名和目录接口)是一组在Java应用中访问命名和目录服 ...
- SpringMVC配置web.xml文件详解(列举常用的配置)
常用的web.xml的配置 1.Spring 框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name) 2.在web.xml配置监听器ContextLo ...
- 《Kali渗透基础》13. 无线渗透(三)
@ 目录 1:无线通信过程 1.1:Open 认证 1.2:PSK 认证 1.3:关联请求 2:加密 2.1:Open 无加密网络 2.2:WEP 加密系统 2.3:WPA 安全系统 2.3.1:WP ...
- QA|Pycharm:allure : 无法将“allure”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。|Allure
Pycharm中生成allure测试报告时报错如图: 单独执行allure --version也不行,cmd这样执行也报同样的错 网上查了 说是环境变量问题,加一下cmd可以了,重启pycharm也可 ...
- torch-1 tensor & optim
开个新坑, pytorch源码阅读-从python代码开始读起. torch/ 1.tensor.py 继承自torch._C._TensorBase , 包括各种操作,TODO:随后看cpp代码 _ ...
- word2010中统一调整表格格式
word中统一调整表格格式基本思路是: 1.选中所有的表格. 2.再对表格格式调整. 选中所有表格需要用到宏,操作很简单,具体操作如下: (1)工具栏"视图"下右下角&quo ...
- 【项目源码】基于JavaEE的健康管理系统
随着网络技术的不断发展,网站的开发与运用变得更加广泛.这次采用java语言SSH框架(Spring,Struts,Hibernate)设计并实现了面向特定群体的健康管理平台.该网站主要有教师饮食管理. ...
- Nextcloud 维护管理
Nextcloud 维护管理 目录 Nextcloud 维护管理 1.管理员被禁用怎么办 2.管理员密码忘了怎么办 1.管理员被禁用怎么办 通过命令行解禁管理员用户: 方法一:通过命令行解禁管理员用户 ...
- 使用HTML一键打包IPA工具打包KRPANO全景项目
该软件已经被GDB苹果网页一键打包工具取代,详情参考如下链接 GDB苹果网页一键打包 HTML一键打包IPA(苹果应用)工具可以把本地HTML项目或者网站打包为一个苹果应用IPA文件,无需编写任何代码 ...