[Offer收割]编程练习赛104

题目过于简单,没啥好说的,但是拿了个第一感觉很爽,记录一下

 

题目1 : 小Hi与魔法 排序,从1开始递增

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=100005;
int a[N];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)cin>>a[i];
    sort(a,a+n);
    int ans=0,l=1;
    for(int i=0;i<n;i++)
    {
        if(a[i]==l)
        l++,ans++;
        else if(a[i]==l-1)ans++;
        else break;
    }
    cout<<ans<<"\n";
}

题目2 : 选项编码 就是map一下

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    string s;
    cin>>s;
    unordered_map<string,string>M;
    M["101"]="A";
    M["11"]="B";
    M["0"]="C";
    M["100"]="D";
    string t;
    for(auto X:s)
    {
        t+=X;
        if(M.count(t))
        cout<<M[t],t="";
    }
}

题目3 : 假期旅行 直接dp当前天是不是可以到达,然后分别转移(题目不太好读懂

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1005;
char s[N][N];
int dp[N][N];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)cin>>(s[i]+1);
    for(int i=0;i<m;i++)dp[0][i]=1;
    for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++)
    {
        if(dp[i-1][j-1]&&s[i][j]=='O')dp[i][j]=1;
        if(dp[i][j-1]&&s[i][j]=='O')dp[i][j]=1;
    }
    int ans=-1;
    for(int i=1;i<=m;i++)
    if(dp[n][i])
    {
        ans=i;
        break;
    }
    cout<<ans;
}

题目4 : 脉冲星观测 说的是其中有一个多记了,所以只要看前面对,还是后面对就可以了,(当然可以都不对,3的情况)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=100005;
int a[N];
set<int>S;
void la(int x)
{
    //cout<<x<<"\n";
    S.insert(1);
    S.insert(x);
    int y=sqrt(x+0.5);
    for(int i=2;i<=y;i++)
    if(x%i==0)S.insert(i),S.insert(x/i);
}
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)cin>>a[i];
    //cout<<a[1]-a[0]<<" "<<a[n-1]-a[n-2]<<"\n";
    if(a[1]-a[0]!=a[n-1]-a[n-2])
    {
        if(a[1]-a[0]!=a[2]-a[1])
        la(a[n-1]-a[n-2]);
        if(a[n-2]-a[n-3]!=a[n-1]-a[n-2])
        la(a[1]-a[0]);
    }
    else la(a[1]-a[0]);
    for(auto X:S)cout<<X<<"\n";
}

 

posted @ 2019-07-22 09:06  暴力都不会的蒟蒻  阅读(197)  评论(0编辑  收藏  举报