• BZOJ 4143 The Lawyer


           这道题看起来很吓人,但事实上看懂后会发现,其根本没有任何技术含量,做这道题其实要考虑的就是每天最早结束的一场的结束时间以及最晚开始的一场的开始时间,如果结束时间早于开始时间,那么OK就这两场,否则输出无解,要注意的是,如果想在传入时就把每天分开,记得标记每一场的序号。

           代码如下:

    #include<cstdlib>
    #include<cstdio>
    #include<iostream>
     
    using namespace std;
     
    long long int i_day,i_huiyi,temp_1,temp_2,temp_3;
    long long int i_hui[21][500000][3];
    long long int i_nob[21];
    long long int i_min,nob_1,i_max=80000000,nob_2;
     
    int main()
    {
        cin>>i_huiyi;cin>>i_day;
        for(int i=0;i<i_huiyi;i++)
        {
            cin>>temp_1;cin>>temp_2;cin>>temp_3;
            i_hui[temp_3][i_nob[temp_3]][0]=temp_1;
            i_hui[temp_3][i_nob[temp_3]][1]=temp_2;
            i_hui[temp_3][i_nob[temp_3]][2]=i+1;
            i_nob[temp_3]++;
        }
        for(int i=1;i<=i_day;i++)
        {
            for(int m=0;m<i_nob[i];m++)
            {
                if(i_hui[i][m][0]>i_min)
                {
                    i_min=i_hui[i][m][0];
                    nob_1=i_hui[i][m][2];
                }
                if(i_hui[i][m][1]<i_max)
                {
                    i_max=i_hui[i][m][1];
                    nob_2=i_hui[i][m][2];
                }
            }
            if(i_min>i_max)
            {
                cout<<"TAK"<<" "<<nob_1<<" "<<nob_2<<endl;
                i_min=0;i_max=80000000;
            }
            else
            {
                cout<<"NIE"<<endl;
                i_min=0;i_max=80000000;
            }
        }
         
        return 0;
    }
    希望我的博客能对您有所帮助,谢谢。
  • 相关阅读:
    matlab sort函数
    演化计算实数空间变异算子
    SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子
    matlab优化函数fminunc
    mat文件读写
    matlab基本函数 randn,rand,orth
    matlab @(x)构造匿名函数
    java读取写入CSV文件
    递归解决遍历问题
    递归解决全排列问题
  • 原文地址:https://www.cnblogs.com/szy-wlxy/p/4704956.html
Copyright © 2020-2023  润新知