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;
}

(以下为赛后补题)

(未完待续,困死了,明天再补,如果我忘了请看到这的人提醒我一声)

随机推荐

  1. win10安装Redis5、配置自启动教程

    前提条件:首先我安装的是压缩包版的Redis5.0.14.1,下载链接为 https://github.com/tporadowski/redis/releases 安装教程 下载软件并解压 进入软件 ...

  2. numpy中计算相关系数的np.corrcoef

    np.corrcoef的作用 计算 Pearson 乘积矩相关系数.它可以用来分析给定数据集中各个变量之间的线性相关程度,返回一个相关系数矩阵,相关系数矩阵中的值介于 -1 到 1 之间,包括 -1 ...

  3. 万字+20张图剖析Spring启动时核心的12个步骤

    大家好,我是三友~~ 今天来扒一扒Spring在启动过程中核心的12个步骤 之所以来写这篇文章,主要是来填坑的 之前在三万字盘点Spring 9大核心基础功能这篇文章的末尾中给自己挖了一个坑,提了一嘴 ...

  4. KRPano JS 场景编辑器源码

    KRPano JS编辑器,可以运行在Node环境中. 源码地址:https://github.com/xxweimei/krpano-editor-js 或者下载zip包:http://pan.bai ...

  5. dedebiz数据重置

    TRUNCATE biz_addonarticle;TRUNCATE biz_addonimages;TRUNCATE biz_addoninfos;TRUNCATE biz_addonshop;TR ...

  6. 「codeforces - 1394C」Boboniu and String

    link. 注意到 BN-string 长成什么样根本不重要,我们把它表述为 BN-pair \((x, y)\) 即可,两个 BN-strings 相似的充要条件即两者分别映射得到的 BN-pair ...

  7. Machine Learning for NetFlow Anomaly Detection With Human-Readable Annotations 笔记

    Machine Learning for NetFlow Anomaly Detection With Human-Readable Annotations 关键摘要 我们开发了一个复杂企业网络中的异 ...

  8. 中国这么多 Java 开发者,应该诞生出生态级应用开发框架

    1.必须要有,不然就永远不会有 应用开发框架,虽然没有芯片.操作系统.数据库.编程语言这些重要.但是最终呈现在用户面前的,总是有软件部分.而软件系统开发,一般都需要应用开发框架,它是软件系统的基础性部 ...

  9. webgl centroid质心插值的一点理解

    质心插值说的是什么 2023.10.04再次review这个细节点: https://www.opengl.org/pipeline/article/vol003_6/ https://github. ...

  10. 前端三件套系例之JQuery——JQuery基础、JQuery选择器、JQuery文本属性样式操作、JQuery操作DOM

    文章目录 1 JQuery基础 1. 了解jQuery 1.1 什么是jQuery 1.2 什么事JS类库 1.3 常见JS类库 1.4 jQuery的优势 1.5 jQuery的版本 1.6 jQu ...