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;
}
(以下为赛后补题)
(未完待续,困死了,明天再补,如果我忘了请看到这的人提醒我一声)
随机推荐
- 0×03 Vulnhub 靶机渗透总结之 KIOPTRIX: LEVEL 1.2 (#3) SQL注入+sudo提权
0×03 Vulnhub 靶机渗透总结之 KIOPTRIX: LEVEL 1.2 (#3) 系列专栏:Vulnhub靶机渗透系列 欢迎大佬:点赞️收藏关注 首发时间: 2023年8月22日 如有错误 ...
- Codeforces 1463D Pairs
题意 对于数字\(1\)~\(2n\),可以构造出\(n\)个二元组,对于\(n\)个二元组,选择一个数组\(x\),留下\(x\)个二元组的最小值,留下\(n-x\)个二元组的最大值,其构成了一个集 ...
- ps aux 命令使用
转载请注明出处: ps aux命令是一个常用的Linux/Unix系统命令,它用于查看正在运行的进程信息.下面是该命令使用的参数介绍.命令响应结果参数介绍以及一些使用实例的总结: 命令使用参数介绍 ...
- flask中cookies的使用
flask中cookies的使用 在Flask中对cookie的处理 1. 设置cookie: 设置cookie,默认有效期是临时cookie,浏览器关闭就失效 可以通过 max_age 设置有效期, ...
- MySQL系列3:缓冲池Buffer Pool的设计思想
1. 回顾 上一篇我们主要讲了InnoDB的存储引擎,其中主要的一个组件就是缓存池Buffer Pool,缓存了磁盘的真实数据,然后基于缓存做增删改查操作,同时配合了后续的redo log.刷磁盘等机 ...
- 《流畅的Python》 读书笔记 230926
写在最前面的话 缘由 关于Python的资料市面上非常多,好的其实并不太多. 个人认为,基础的,下面的都还算可以 B站小甲鱼 黑马的视频 刘江的博客 廖雪峰的Python课程 进阶的更少,<流畅 ...
- 模拟.NET应用场景,综合应用反编译、第三方库调试、拦截、一库多版本兼容方案
免责声明 使用者本人对于传播和利用本公众号提供的信息所造成的任何直接或间接的后果和损失负全部责任.公众号及作者对于这些后果不承担任何责任.如果造成后果,请自行承担责任.谢谢! 大家好,我是沙漠尽头的狼 ...
- 在线问诊 Python、FastAPI、Neo4j — 生成 Cypher 语句
目录 构建节点字典 构建Cypher CQL语句 Test 这边只是为了测试,演示效果和思路,实际应用中,可以通过NLP构建CQL 接上一篇的问题分类 question = "请问最近看东西 ...
- DevOps|研发效能解决的是企业效率问题
研发效能并不能解决企业效益问题 它不是利润中心,不能给你带来直接收入(研发效能相关工具厂商做咨询.出方案.卖工具除外).想要解决企业效益问题,依赖于企业战略.业务/产品.组织.运营.创新等其他方面. ...
- 深入了解 GPU 互联技术——NVLINK
随着人工智能和图形处理需求的不断增长,多 GPU 并行计算已成为一种趋势.对于多 GPU 系统而言,一个关键的挑战是如何实现 GPU 之间的高速数据传输和协同工作.然而,传统的 PCIe 总线由于带宽 ...