パットレベルAには、列挙、プレフィックスサム、二分法、フラッドフィル、ダブルポインター、多方向マージ、ヒープ、スタック、単調スタックが含まれます。

A1117

/*
    题意:
    1.有e天的骑行距离都是大于e的,所求的e表示天数
    2.e必须是最大的

    注意事项:
    1.不是从所给的数组中进行寻找,而可以说是从1--n都可以寻找,只要满足e个数大于e即可

    解题思路:
    倒数第e个数是否大于e

*/
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;



const int maxn=103333;

int s[maxn];

int n;

int main()
{
    
    
    cin >> n;
    int temp;
    for(int i=0; i<n; i++)
    {
    
    
        cin >> s[i];
    }
    sort(s,s+n);   //从小到大排列

    for(int i=n; i; i--)     //i表示天数,一共有n天,且要求e是最大的,所以从n开始向前遍历
    {
    
    
        if(s[n-i]>i)   //s[n-i]表示只是所有比i大的数中最小的,i表示现在计算有i个数
        {
    
    
            cout << i;
            return 0;
        }
    }
    cout << 0;     //如果没有找到就输出0,因为输出的都是正整数
    return 0;
}

A1148

/*
    解题思路:
    1.逻辑推理题,就是通过枚举去验证是否正确
    2.条件1:只有俩个狼人+只有1个狼人说谎
    3.条件2:一共只有两个人说谎

*/

#include<iostream>
using namespace std;

const int maxn=101;

int a[maxn];

int n;

int judge(int k,int i,int j)   //说谎返回1,否则返回0
{
    
    
    int t=a[k];
    if(t>0)     //此时t表示人
    {
    
    
        if(i==t || j==t)   //如果i为人或者j为人,则表示说谎
            return 1;
        return 0;
    }
    t=-t;    //此时t表示狼人,但是编号为正,所以去相反数
    if(i==t || j==t)
        return 0;
    return 1;
}

int main()
{
    
    
    cin >> n;
    for(int i=1; i<=n; i++)
        cin >> a[i];


    //下面的双层for是去判断是否为狼人,i,j表示为狼人
    for(int i=1; i<=n; i++)
        for(int j=i+1; j<=n; j++)
        {
    
    
            int s=0;
            s=judge(i,i,j)+judge(j,i,j);  //judge函数是判断第i个人是否说谎,说谎返回1,否则返回0

            if(s!=1)   //先判断两个狼人中说谎人的个数,如果不为1,则continue
                continue;

            int s1=0;
            for(int k=1; k<=n; k++)
            {
    
    
                s1+=judge(k,i,j);
            }
            if(s1!=2)
                continue;

    //如果代码能走到这一步,则表示找到了合适的狼人,由于题目要求输出狼人按照字典序的升序排列,同时上面代码也是从1--n遍历,所以也就是直接输出,然后退出循环
            cout << i << " " << j;
            return 0;
        }
    cout << "No Solution";
    return 0;
}

おすすめ

転載: blog.csdn.net/wsfhdhjs/article/details/109706489