zoukankan      html  css  js  c++  java
  • Test 2019.5.19

    日常学校考试,这次试卷大致是 一道字符串处理 + 一道二分 + 一道看起来十分像DFS的动规,期望值210,实际180,100+80+0.好吧还是看下试卷.

    T1: 传送门

    T2: 传送门

    T3: 传送门

    T1:

    一道简单的字符串处理 (模拟),也就打了一个小时。原理和现实生活相近,类似于智能推荐的输入按键。模拟题意,逐个判断(简单易懂)。这道题认真模拟,注意最后输出的换行顺序就好。

    本题思路

    • 先输入n个,目的地名称,再输入已经输进去的字母
    • 然后对于每一个输入进去的字母都进行判断是否和目的地一致(只要有一个不一样就做标记,在最后搜索时跳过)
    • 对于每一个目的地,只要没被做过标记那么他的没输入的下一个字母就在输出的表数组上记录
    • 最后输出一个表​

    AC代码

    #include<bits/stdc++.h>
    using namespace std;
    char f[60][110],c[259];
    int i,n,ans[27],k=-1,l;
    bool b[90];
    void print(){
        printf("***");
        for(i=1;i<=26;i++){
            if(ans[i])cout<<char(i+64);
            else printf("*");
            if((i+3)%8==0 && i>4)cout<<endl;
        }
        printf("***");
    }
    int main(){
        cin>>n;
        for(i=1;i<=n;i++)cin>>f[i];
        cin>>c;
        l = strlen(c);
        while(++k < l){
            for(i=1;i<=n;i++){
                if(!b[i])if(f[i][k] != c[k])b[i]=true;
            }
        }
        for(i=1;i<=n;i++){
            if(!b[i])ans[f[i][l]-64]=1;
        }
        print();
        return 0;
    }
    View Code

    T2:

    自己用暴力做的80分,正解二分,没什么多说的了。

    暴力代码

    #include<bits/stdc++.h>
    #define maxn 100003
    using namespace std;
    int a,b,c,i,j,k;
    long long ans;          //此题的大坑点,无数打正解的人都wa在这
    int cake1[maxn],cake2[maxn],cake3[maxn];
    int main(){
        scanf("%d%d%d",&a,&b,&c);
        for(i=1;i<=a;i++)cin>>cake1[i];
        for(i=1;i<=b;i++)cin>>cake2[i];
        for(i=1;i<=c;i++)cin>>cake3[i];
        for(i=1;i<=a;i++){
            for(j=1;j<=b;j++){
                if(cake1[i]>=cake2[j])continue;
                for(k=1;k<=c;k++){
                    if(cake2[j]>=cake3[k])continue;
                    ans+=1;
                }
            }
        }
        printf("%d",ans);
        return 0;
    }
    View Code

    T3:

    一道动规题,当初做时以为是DFS,结果爆0了.......

    #include<bits/stdc++.h>
    using namespace std;
    #define maxn 5000
    #define inf 0xfffffff
    int sc[maxn+5],n,l,r,ans=-inf,f[maxn+5];
    int main(){
        cin>>n>>l>>r;
        for(int i=1;i<=n;i++){
            cin>>sc[i];
            f[i]=-inf;
        }
        f[1]=sc[1];
        for(int i=2;i<=n;i++){
            for(int j=l;j<=r;j++){
                if(i-j > 0)f[i]=max(f[i],f[i-j]);
            }
            if(f[i]!=-inf)f[i]+=sc[i];
            if(i+l>=n)ans=max(ans,f[i]);
        }
        cout<<ans;
        return 0;
    }
    View Code
  • 相关阅读:
    小程序携带参数转发
    小程序开发过程中问题终结
    在小程序中使用md5处理需要加密的字符串(含中文的字符串)
    php 字符串的处理
    PHP 数组(array)
    php数学运算
    php 单双引号的区别
    PHP 结构控制 if else / switch / while / do while
    JavaScript best practices JS最佳实践
    java入门概念梳理总结
  • 原文地址:https://www.cnblogs.com/jiangfengyang/p/10922765.html
Copyright © 2011-2022 走看看