Codeforces Round #422 (Div. 2) 解题报告

来源:互联网 发布:服装设计淘宝 编辑:程序博客网 时间:2024/04/24 09:44

A. I’m bored with life

//Author: Lixiang#include<stdio.h>struct A{    int A,B;    void init(){        scanf("%d%d",&A,&B);    }    void work(){        if(A>B){            int t=A;            A=B;            B=t;        }        int s=1;        for(int i=1;i<=A;i++)            s*=i;        printf("%d\n",s);    }}sol;int main(){    sol.init();    sol.work();    return 0;}

B. Crossword solving

//Author: Avneet#include<bits/stdc++.h>using namespace std;int n,m,i,j,c,a=2e9,ai;string s,t;int main(){cin>>n>>m>>s>>t;for(i=0;i<=m-n;i++){    for(c=j=0;j<n;j++)        t[i+j]==s[j]?0:c++;    c<a?a=c,ai=i:0;}cout<<a<<endl;for(c=j=0;j<n;j++)    t[ai+j]!=s[j]?cout<<j+1<<" ",0:0;}

C. Hacker, pack your bags!

#include<bits/stdc++.h>#define F(i,a,b) for(int i=(a);i<=(b);++i)using namespace std;typedef long long ll;typedef pair<int,int>P;const int N=2e5+7;int n,m;vector<P>L[N],R[N];ll c[N],ans;int main(){    F(i,1,N-1)c[i]=INT_MAX;    scanf("%d%d",&n,&m);    F(i,1,n)    {        int l,r,v;        scanf("%d%d%d",&l,&r,&v);        L[l].push_back({r-l+1,v});        R[r].push_back({r-l+1,v});    }    ans=INT_MAX;    F(i,1,N-1)    {        for(auto &it:L[i])        {            if(it.first>=m)continue;            ans=min(ans,c[m-it.first]+it.second);        }        for(auto &it:R[i])            c[it.first]=min(c[it.first],1ll*it.second);    }    printf("%I64d\n",ans==INT_MAX?-1:ans);    return 0;}
原创粉丝点击