

A Tomorrow ↗#
题目大意#
一年由
M
个月组成,从1
月到M
月,每个月由D
天组成,从1
天到D
天。 问:在该日历中,年y
、月m
、日d
的下一天的日期?
参考代码#
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
void solve(){
int M, D;
std::cin >> M >> D;
int y, m, d;
std::cin >> y >> m >> d;
d ++;
if(d > D){
d -= D;
m ++;
if(m > M){
m -= M;
y ++;
}
}
std::cout << y << " " << m << " " << d << endl;;
}
signed main () {
std::ios::sync_with_stdio (false);
std::cin.tie (nullptr), std::cout.tie (nullptr);
int Lazy_boy_ = 1;
// std::cin >> Lazy_boy_;
while (Lazy_boy_--)
solve ();
return 0;
}
cppB Buy One Carton of Milk ↗#
题目大意#
一包
6
个蛋S
元, 一包8
个蛋M
元,一包12
个蛋L
元 问:购买任意数量的每包鸡蛋时, 求至少购买N
个鸡蛋所需的最小价格?
解题思路#
由于数据量比较小,我们可以直接三重循环暴力跑一遍.
参考代码#
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
const int INF = 0x3f3f3f3f;
void solve(){
int n, s, m, l;
std::cin >> n >> s >> m >> l;
int ans = INF;
for(int i = 0 ; i <=100 ; i ++){
for(int j = 0; j <= 100; j ++){
for(int k = 0 ; k <= 100; k ++){
int w = i * s + j * m + l * k;
if(i * 6 + 8 * j + 12 * k >= n)
ans = std::min (ans, w);
}
}
}
std::cout << ans << endl;
}
signed main () {
std::ios::sync_with_stdio (false);
std::cin.tie (nullptr), std::cout.tie (nullptr);
int Lazy_boy_ = 1;
// std::cin >> Lazy_boy_;
while (Lazy_boy_--)
solve ();
return 0;
}
cppC Sum of Numbers Greater Than Me ↗#
题目大意#
给一个大小为
N
的数组A
, 问: 数组A
中所有大于A[i]
的元素之和.
解题思路#
B
数组为输入的数组, 现有s
记录数组元素的总和,数组A
记录B
数组中大小为i
的 元素个数为A[i]
个,我们在遍历一次A
数组,只要A[i] > 0
就可以将A[i]
赋值为s - A[i] * i
当然,同时s -= i * A[i]
最后,再遍历一次数组B
,输出A[B[i]]
.
参考代码#
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
const int INF = 0x3f3f3f3f;
void solve(){
int n, s = 0, ans = 0,x;
std::cin >> n;
std::vector<int> a(1e6 + 50, 0ll), b(n, 0ll);
for(int i = 0 ; i < n ; i ++)
std::cin >> b[i], a[b[i]] ++, s += b[i];
for(int i = 1 ; i <= 1000000 ;i ++){
if(a[i]){
s -= a[i] * i;
a[i] = s;
}
}
for(int i = 0 ; i < n ; i ++)
std::cout << a[b[i]] << " ";
}
signed main () {
std::ios::sync_with_stdio (false);
std::cin.tie (nullptr), std::cout.tie (nullptr);
int Lazy_boy_ = 1;
// std::cin >> Lazy_boy_;
while (Lazy_boy_--)
solve ();
return 0;
}
cpp