1. 程式人生 > >Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)

Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)

std amp tin keys art div codeforce 小寫 pan

D題fst了,生無可戀。第二場rated的CF,打得精神恍惚

A. Unimodal Array 題意:判斷數列是否是單峰的。 像題意那樣分為三個階段隨便判一判就好了
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
int n,x[105],part=1;
bool f=1;
int main()
{
    scanf("%d",&n);
    for(int i=1
;i<=n;i++) { scanf("%d",&x[i]); if(part==1) {if(x[i]==x[i-1])part=2;else if(x[i]<x[i-1])part=3;} else if(part==2) {if(x[i]<x[i-1])part=3;else if(x[i]>x[i-1]){f=0;break;}} else if(part==3) {if(x[i]>x[i-1]){f=0;break;}
else if(x[i]==x[i-1]){f=0;break;}} } if(f)printf("YES\n"); else printf("NO\n"); return 0; }
B. Keyboard Layouts 題意:給出一個26個字母的對應方式, 將給定串由模式1轉為模式2 模擬,判斷一下大小寫
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace
std; char a[26],b[26],s[1001]; int map[26]; int main() { scanf("%s%s%s",a,b,s); for(int i=0;i<26;i++) map[a[i]-a]=b[i]-a; for(int i=0;i<strlen(s);i++) { if(s[i]>=a&&s[i]<=z)cout<<(char)(map[(int)(s[i]-a)]+a); else if(s[i]>=A&&s[i]<=Z)cout<<(char)(map[(int)(s[i]-A)]+A); else cout<<s[i]; } return 0; }
C. Jury Marks D. Office Keys 題意:給出n個人,k把鑰匙,和辦公室所在位置,每個人都需拿到一把鑰匙再去辦公室,最小化他們之中的最大路程 沒錯…這題我fst了,二分邊界開小了,並且某處忘記了j++,心痛 二分答案,然後貪心思路:直覺上可以知道人與鑰匙一一對應是從左到右的,根據這點判斷是否可行
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
typedef long long LL; 
int n,k,p,a[1005],b[2005];
using namespace std;
LL dis(LL x,LL y){return abs(y-x)+abs(p-y);}
bool check(LL mid)
{
    int j=1;
    for(int i=1;i<=n;i++,j++)
    {
        while(j<=k&&dis(a[i],b[j])>mid)++j;
        if(j>k)return false;
    }
    return true;
}
int main()
{
    scanf("%d%d%d",&n,&k,&p);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=1;i<=k;i++)scanf("%d",&b[i]);
    sort(a+1,a+1+n),sort(b+1,b+1+k);
    LL l=0,r=2000000000,ans;
    while(l<=r)
    {
        LL mid=(l+r)>>1;
        if(check(mid))ans=mid,r=mid-1;
        else l=mid+1;
    }
    printf("%I64d\n",ans);
    return 0;
}
E. Cards Sorting F. Bamboo Partition

Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)