SCAU 18429 Earning Money for Dating

2023-11-22 13:20
文章标签 money scau earning 18429 dating

本文主要是介绍SCAU 18429 Earning Money for Dating,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(补题补累了,做两道校赛题缓一下
时限:2s
内存:10kb
在这里插入图片描述
输入:
2
2
1 3
1
2 2

输出:
4
2

题目大意
给定两项工作的次数m,以及两者工作的冷却时间,求最快做完所有工作的时间
思路: 贪心
不妨设工作A、B的冷却时间为a、b,且a≥b。
首先抽象的想想问题,当a很大时,b就可以塞在A工作的间隔中(即A还在CD中),这时只要看a的结束时间即可。
再仔细想这个情况的必要条件是a>b+1(后面解释),当a>b+1时,a的结束时间是(m-1)*a+1,因为工作时长是1h最后还要+1.
注意以下特判情况:
(1)当m == 1时,结束时间恒为2, 0 ~ 1做A工作,1 ~ 2做B工作
(2)当a == 1时,AB工作无CD,每个时刻都要做工作,所以答案为 2 * m
(3)当 a == b 或者 a == b+1时,a的间隔里只能放一个b,此时结束时间为( m-1 ) * a + 1 + 1,即一般情况的结果 + 1,是以工作B收尾的

#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cstring>
using namespace std;
#define IOS ios::sync_with_stdio(false);cin.tie(0)
#define _for(i,a,b) for(int i=(a) ;i<=(b) ;i++)
#define _rep(i,a,b) for(int i=(a) ;i>=(b) ;i--)
#define mst(x,y) memset(x,y,sizeof(x))
#define all(v) v.begin() , v.end()
#define pb(v) push_back(v)
#define INF 0x3f3f3f3f
#define int long longtypedef long long ll;const int N =1e7+10;
signed main()
{IOS;int T;cin>>T;while( T-- ){int m;cin>>m;int a,b;cin>>a>>b;if( a<b )   swap(a,b);if( m==1 ){cout<<2<<endl;}else if( a==1 ){cout<<2*m<<endl;}else if( a == b || a == b+1){cout<<(m-1) * a+1+1<<endl;}else{cout<<(m-1) * a+1<<endl;}}
}

这篇关于SCAU 18429 Earning Money for Dating的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/410442

相关文章

Codeforces Round 946 (Div. 3) E. Money Buys Happiness

m m m个月,每个月月底发 x x x的薪水,也就是第 i i i个月只能用前 i − 1 i-1 i−1个月挣的钱,而不能用这个月挣的钱。第 i i i个月花费 c [ i ] c[i] c[i]的薪水能获得 h [ i ] h[i] h[i]的快乐度,问最多能获取的快乐度是多少。 m m m和 h [ i ] h[i] h[i]都较小 考虑01背包,设 d p [ i ] dp[i] d

【SCAU数据挖掘】数据挖掘期末总复习题库判断题及解析

1.离群点可以是合法的数据对象或者值。( ✓) 解析:离群点(Outliers)通常是与数据集中其他数据显著不同的数据点,但它们可以是合法的数据值。这些值可能是由于测量误差、数据录入错误、数据分布的自然属性等原因产生的。 3.关联规则挖掘过程是发现满足最小支持度的所有项集代表的规则。(x ) 解析:关联规则挖掘(Association Rule Mining)的目标是发现数据项之间有趣的关联

【SCAU数据挖掘】数据挖掘期末总复习题库简答题及解析——中

1. 某学校对入学的新生进行性格问卷调查(没有心理学家的参与),根据学生对问题的回答,把学生的性格分成了8个类别。请说明该数据挖掘任务是属于分类任务还是聚类任务?为什么?并利用该例说明聚类分析和分类分析的异同点。 解答: (a)该数据挖掘任务属于聚类任务(clustering)。 (b)该任务没有预先定义的类别标签,而是根据学生对问题的回答对学生的性别进行分类,将相似的学生划分到同一个类别

【偶然一题】CF1979C. Earning on Bets | 思维 | 绕证明绕出来了

题目内容 原题链接 给你一个长度为 n n n 的数组 a a a ,让你构造一个数组 b b b , 满足对于 1 ≤ i ≤ n 1\leq i\leq n 1≤i≤n, 都有 a i × b i > ∑ j = 1 n b j a_i\times b_i> \sum\limits_{j=1}^n b_j ai​×bi​>j=1∑n​bj​ 数据范围 1 ≤ n ≤

攻防世界--杂项misc-2017_Dating_in_Singapore

题目信息 题目描述和附件分别是一串数字和新加坡日历,数字中间有短线-连接,刚好分成了12个字段。猜想对应了12个月 01081522291516170310172431-050607132027262728-0102030209162330-02091623020310090910172423-02010814222930-0605041118252627-0203040310172431-0

NYOJ 588题 Money

以2块钱为例: sum = 1 + 20 / 2 + 20 / 5 +(20 - 5 * 1)/ 2 + (20 - 5 * 2) / 2 + (20 - 5 * 3) / 2 = 29 1.全部是1:1种; 2.全部是2 +  2和1的组合:20 / 2; 3.全部是5 + 5和 1的组合:20 / 5; 4.5,2,1的组合+ 5,2的组合:(20 - 5 * i) / 2,其中,i

hdu (2578) Dating with girls(1)

此题应注意的是; 这n个数可能有相同的,所以把相同的留一个在这里, #include<stdio.h> #include<stdlib.h> int cmp(const void*a,const void*b) {     return *(int*)a-*(int*)b; } int main() {     int m,n,i,j,k,h,low,hig,mid,p;     int a[1

hdu(2579) Dating with girls(2)

这个题有意思的是:墙可以消失,只要时间是k的倍数, 在此时墙都可以消失一秒, 单此题不同之处就是,每一个点可以走多次,但必须是在不同的时刻, 这就必须要用三维数组来标记了。 visit[i][j][s/k]表示在(i,j)这个点在s/k的时刻走过了。。 所以在本题可以行走的条件是; 一;map[i][j]=='.'; 二;map[i][j]=='#'and s/k==0时;任意一个都行。。

Codeforces Round 951 (Div. 2)C. Earning on Bets

Problem - C - Codeforces 合理的答案: 求出 k1 ~ kn 的最小公倍数lcm,如果 lcm/k1 + lcm/k2 + ... + lcm/kn < lcm 即符合题意。 左边之和为我们付的总钱数,右边才是每次选择得到的钱数(都为lcm)。 直接拿1e9检查是否可以分即可(除尽除不尽k的商都加一,这样*k就超过了1e9)。 但没有证明🤓。 ————

SCAU 数据结构 实验六 排序算法

![[Pasted image 20240 8638 直接插入排序 Description 用函数实现直接插入排序,并输出每趟排序的结果. 输入格式 第一行:键盘输入待排序关键的个数n 第二行:输入n个待排序关键字,用空格分隔数据 输出格式 每行输出一趟排序结果,数据之间用一个空格分隔 输入样例 10 5 4 8 0 9 3 2 6 7 1 输出样例 4 5 8 0 9 3