Codeforces Round 811 (Div. 3) A-C、E

A.Everyone Loves to Sleep

        模拟、贪心。首先将上床时间转换为总的分钟数,设为sum,接着读入每一个闹钟,与sum相减,记录差值的最小值。若为负则证明是隔夜闹钟,此时加上24*60(一天总分钟数)调至同一天,再进行记录即可。

#include
#define int long long
#define endl '\n'
using namespace std;
const int N=2e5+5;
int a[N];

void solve(){
    int n,bh,bm;cin>>n>>bh>>bm;
    int sum=bh*60+bm;
    int ans=999999;
    for(int i=1;i<=n;i++){
        int h,m;cin>>h>>m;
        int tem=h*60+m-sum;
        if(tem<0) tem+=24*60;//解决隔天闹钟
        ans=min(tem,ans);
    }
    cout<>t;
	while(t--) solve();
	return 0;
}

B.Remove Prefix 

        模拟、思维。由题意得,只需要维护序列内没有相同数字。不妨逆向思维,从序列最后开始,当序列出现一对相同数字时,则直接输出该数字的位置,即从左到右删到该处能保证剩余序列没有相同数字。

#include
#define int long long
#define endl '\n'
using namespace std;
const int N=2e5+5;
int a[N],num[N];

void solve(){
    memset(num,0,sizeof num);
	int n;cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=n;i>=1;i--){
        if(num[a[i]]){
            cout<>t;
	while(t--) solve();
	return 0;
}

C.Minimum Varied Number

        暴力枚举、模拟、排序。只需要一个个试出来,最后排一次序即可。

#include
#define int long long
#define endl '\n'
using namespace std;
const int N=2e5+5;
int a[N];

void solve(){
    int n;cin>>n;
    string ans;
    int sum=n;
    for(int i=9;i>=1;i--){
        if(sum>=i){
            ans+=('0'+i);
            sum-=i;
        }
    }
    sort(ans.begin(),ans.end());
    cout<>t;
	while(t--) solve();
	return 0;
}

E.Add Modulo 10

        数学、思维。由题目给的样例可以得到规律,经过多次操作后,尾数总会是2,4,8,6的循环或是5,0的循环。若为奇数时,1->2,3->6,7->4,9->8,5->0可以保持规律。因此该题只需要讨论5的倍数与其他。

        当序列内出现5的倍数时,仅当序列内其他所有数字全部为5的倍数时,才能满足题意。

        讨论其他数字时,我们可以进行模拟题目操作,通过判断操作后数字是否相等来判断是否符合题意。而要实现有两个关键点:1.将所有的数据操作至以2为尾数(当然4,6,8也行,只要统一就行)2.上述找规律可发现,当经过一轮2,4,8,6的循环时,会比原始数字加20,故我们可以对20取模,保证数字相等。

#include
#define int long long
#define endl '\n'
using namespace std;
const int N=2e5+5;
int a[N];

void solve(){
	int n;cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	int cnt=0;
	for(int i=1;i<=n;i++) if(a[i]%5==0) cnt++;
	if(cnt>0&&cnt>t;
	while(t--) solve();
	return 0;
}

        本蒟蒻暂时不会D题,待更新ToT。

你可能感兴趣的:(CF题解,c++)