hey_left 18 Codeforces Round 920 (Div. 3)

题目链接

A.

根据正方形4个角的特性,可以把它们排序处理,
得到长和高,相乘得面积

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N=1e5+10;

bool cmp(pair<int,int>x,pair<int,int>y){
    if(x.first==y.first)return x.second<y.second;
    else return x.first<y.first;
}
void solve(){    vector<pair<int,int>>a(5);
    for(int i=1;i<=4;i++){
        cin>>a[i].first>>a[i].second;
    }
    sort(a.begin()+1,a.end(),cmp);
    int h=a[2].second-a[1].second,w=a[3].first-a[1].first;
    cout<<h*w<<'\n';


}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

B.

以期望字符串为基准,对比原字符串,对于每个位置,记录多出的猫和少的猫,答案为两者之差+两者较小的值

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N=1e5+10;

void solve(){
    int n;cin>>n;
    string t,s;cin>>t>>s;
    int much=0,less=0;
    for(int i=0;i<n;i++){
        if(t[i]=='0'&&s[i]=='1')less++;
        else if(t[i]=='1'&&s[i]=='0')much++;
    }
    int res=abs(much-less)+min(much,less);
    cout<<res<<'\n';
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

C.

贪心,在时间差内比较两种方式哪一种耗电更少
注意电量为0不能发消息,同一时刻也不行
同一时刻的概念看样例

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N=1e5+10;

void solve(){
    int n,f,a,b;cin>>n>>f>>a>>b;
    vector<int>time(n+1);
    int tmp=0;
    for(int i=1;i<=n;i++){
        cin>>time[i];
            int t1 = a * (time[i] - time[i - 1]);
            int t2 = b;
            tmp+=min(t1,t2);
    }
    if(tmp<f)cout<<"YES\n";
    else cout<<"NO\n";
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

posted @ 2024-01-27 19:01  WW爆米花  阅读(4)  评论(0编辑  收藏  举报