zoukankan      html  css  js  c++  java
  • 【USACO1.6】解题报告

    前言:

    这章的三道题目中有两道是可以用DFSDFS做的,另外一道要用到一些数论。(或者大打表?)
    USACOUSACO的第一章算是刷完了。这一张总体来说不算太难,主要都是一些简单的模拟,贪心或者DFSDFS和一些最基础的数论。算是巩固了一下吧。
    USACO:http://train.usaco.org


    USACO1.6.2.Number Triangles

    思路:

    太经典啦这道题。
    相信初学DP的OIerOIer都做过吧。。。
    当然深搜也是可以过的。
    f[i][j]f[i][j]表示搜到第ii行第jj列的最大和,由于只能从左上或上方转移,所以就有:
    f[i][j]=max(f[i1][j1],f[i1][j])+f[i][j]f[i][j]=max(f[i-1][j-1],f[i-1][j])+f[i][j]
    (一开始f[i][j]f[i][j]储存的是第ii行第jj列的数字)
    答案就是max(f[n][i])max(f[n][i])

    代码:

    #include <cstdio>
    #include <algorithm>
    #define N 1010
    using namespace std;
    
    int f[N][N],n,ans;
    
    int main()
    {
        scanf("%d",&n);
        for (int i=1;i<=n;i++)
         for (int j=1;j<=i;j++)
         {
         	scanf("%d",&f[i][j]);
            f[i][j]+=max(f[i-1][j-1],f[i-1][j]);
         }
        for (int i=1;i<=n;i++)
         ans=max(ans,f[n][i]);
        printf("%d\n",ans);
        return 0;
    }
    

    USACO1.6.3.Prime Palindromes

    题解


    USACO1.6.4.Superprime Rib

    思路:

    由于质数末尾不能是除22以外的偶数,所以每个位置只要枚举是1,2,3,5,7,91,2,3,5,7,9中的哪一个就可以了。
    对于每一位,筛一次质数即可。

    代码:

    /*
    ID:ssl_zyc2
    TASK:sprime
    LANG:C++
    */
    
    #include <cstdio>
    #include <cmath>
    using namespace std;
    
    const int f[]={0,1,2,3,5,7,9};
    int n,a[11];
    
    bool prime(int m)  //筛质数
    {
        int t=0;
        for (int i=1;i<=m;i++) t=t*10+a[i];
        if (t==1) return 0;
        for (int i=2;i<=sqrt(t);i++)
         if (!(t%i)) return 0;
        return 1;
    }
    
    void dfs(int x)
    {
        if (x>n)
        {
            for (int i=1;i<=n;i++)
             printf("%d",a[i]);
            printf("\n");
            return;
        }
        for (int i=1;i<=6;i++)
        {
            a[x]=f[i];
            if (prime(x)) dfs(x+1);
            a[x]=0;
        }
    }
    
    int main()
    {
        scanf("%d",&n);
        dfs(1);
        return 0;
    }
    
  • 相关阅读:
    响应式注意要添加“视口”约束标记---viewport
    js检测浏览器屏幕宽度
    Fragment中退出报错异常
    ListView和Gridview与滚动冲突解决
    APK反编译
    走出来,就要扛住
    与设备无法进行调试怎么走
    OC基础-protocol
    OC基础-变量可见对与方法
    OC基础-面向对象编程简介
  • 原文地址:https://www.cnblogs.com/hello-tomorrow/p/11998523.html
Copyright © 2011-2022 走看看