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

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值