zoukankan      html  css  js  c++  java
  • 头条笔试

    updata:

    2018-5-12

    免费馅饼

     1 #include<bits/stdc++.h>
     2 #define cl(a,b) memset(a,b,sizeof(a))
     3 #define debug(a) cerr<<#a<<"=="<<a<<endl
     4 using namespace std;
     5 typedef long long ll;
     6 typedef pair<int,int> pii;
     7 
     8 const int maxn=1e4+10;
     9 
    10 int mp[maxn][maxn];
    11 int dp[maxn][maxn][2];
    12 
    13 int main()
    14 {
    15     int n,m;
    16     scanf("%d%d",&n,&m);
    17     for(int i=0;i<n;i++)
    18     {
    19         for(int j=0;j<m;j++)
    20         {
    21             scanf("%d",&mp[i][j]);
    22         }
    23     }
    24     for(int i=0;i<n;i++)
    25     {
    26         dp[i][0][0]=mp[i][0];
    27         dp[i][0][1]=mp[i][0]*-1;
    28     }
    29     for(int j=1;j<=m;j++)
    30     {
    31         dp[0][j][0]=max(dp[1][j-1][0],dp[0][j-1][0])+mp[0][j];
    32         dp[0][j][1]=max(max(dp[1][j-1][0],dp[0][j-1][0])+mp[0][j]*-1,
    33                         max(dp[1][j-1][1],dp[0][j-1][1])+mp[0][j]);
    34 
    35         dp[n-1][j][0]=max(dp[n-1][j-1][0],dp[n-2][j-1][0])+mp[n-1][j];
    36         dp[n-1][j][1]=max(max(dp[n-1][j-1][0],dp[n-2][j-1][0])+mp[n-1][j]*-1,
    37                           max(dp[n-1][j-1][1],dp[n-2][j-1][1])+mp[n-1][j]);
    38 
    39         for(int i=1;i<n-1;i++)
    40         {
    41             dp[i][j][0]=max(dp[i][j-1][0],max(dp[i-1][j-1][0],dp[i+1][j-1][0]))+mp[i][j];
    42 
    43             dp[i][j][1]=max(max(dp[i][j-1][0],max(dp[i-1][j-1][0],dp[i+1][j-1][0]))+mp[i][j]*-1,
    44                             max(dp[i][j-1][1],max(dp[i-1][j-1][1],dp[i+1][j-1][1]))+mp[i][j]);
    45 
    46         }
    47     }
    48     int ans=-1;
    49     for(int i=0;i<n;i++)
    50     {
    51         for(int j=0;j<=m;j++)
    52         {
    53 //            printf("%d ",dp[i][j][1]);
    54             ans=max(ans,max(dp[i][j][0],dp[i][j][1]));
    55         }
    56 //        printf("
    ");
    57     }
    58     printf("%d
    ",ans);
    59     return 0;
    60 }/*
    61 
    62 4 3
    63 1 -4 10
    64 3 -2 -1
    65 2 -1 0
    66 0 5 -2
    67 
    68 */

    ----------------------------------------------------------------

    有几个题没有留

    答完才发现是按最高分算 不是最后提交的

    早知道就不存备份了

    A.显然没有找到正解 直接set走一波到80%了

    lower_bound竟然才30% 玄学啊...

     1 #include<bits/stdc++.h>
     2 #define cl(a,b) memset(a,b,sizeof(a))
     3 #define debug(a) cerr<<#a<<"=="<<a<<endl
     4 using namespace std;
     5 typedef long long ll;
     6 typedef pair<int,int> pii;
     7 
     8 const int maxn=1e6+1000;
     9 
    10 set<int>st;
    11 
    12 int main()
    13 {
    14     int n,k,x;
    15     scanf("%d%d",&n,&k);
    16     for(int i=0;i<n;i++)
    17     {
    18         scanf("%d",&x);
    19         st.insert(x);
    20     }
    21     int ans=0;
    22     for(auto i:st)
    23     {
    24         if(st.find(i+k)!=st.end()) ans++;
    25     }
    26     printf("%d
    ",ans);
    27     return 0;
    28 }/*
    29 
    30 6 2
    31 1 5 3 3 4 2
    32 
    33 */

    B.是一个关于字符串处理的题 反正是有两种操作 问最快处理到当前串的步数

    算了下复杂度感觉bfs走一波应该没问题 最后70分也懒得优化了

    //也是暴力走一波到70 代码没留

    C.中缀转后缀这种东西我怎么会自己写

     1 #coding=utf-8
     2 
     3 import sys
     4 
     5 
     6 def show(num):
     7     line1 = ""
     8     line2 = ""
     9     line3 = ""
    10     line4 = ""
    11     line5 = ""
    12     st = str(num)
    13     first = 1
    14     for i in st :
    15         if first != 1:
    16             line1 += '..'
    17             line2 += '..'
    18             line3 += '..'
    19             line4 += '..'
    20             line5 += '..'
    21         first = 0
    22         if i == '0' :
    23             line1 += '66666'
    24             line2 += '6...6'
    25             line3 += '6...6'
    26             line4 += '6...6'
    27             line5 += '66666'
    28         if i == '1' :
    29             line1 += '....6'
    30             line2 += '....6'
    31             line3 += '....6'
    32             line4 += '....6'
    33             line5 += '....6'
    34         if i == '2' :
    35             line1 += '66666'
    36             line2 += '....6'
    37             line3 += '66666'
    38             line4 += '6....'
    39             line5 += '66666'
    40         if i == '3' :
    41             line1 += '66666'
    42             line2 += '....6'
    43             line3 += '66666'
    44             line4 += '....6'
    45             line5 += '66666'
    46         if i == '4' :
    47             line1 += '6...6'
    48             line2 += '6...6'
    49             line3 += '66666'
    50             line4 += '....6'
    51             line5 += '....6'
    52         if i == '5' :
    53             line1 += '66666'
    54             line2 += '6....'
    55             line3 += '66666'
    56             line4 += '....6'
    57             line5 += '66666'
    58         if i == '6' :
    59             line1 += '66666'
    60             line2 += '6....'
    61             line3 += '66666'
    62             line4 += '6...6'
    63             line5 += '66666'
    64         if i == '7' :
    65             line1 += '66666'
    66             line2 += '....6'
    67             line3 += '....6'
    68             line4 += '....6'
    69             line5 += '....6'
    70         if i == '8' :
    71             line1 += '66666'
    72             line2 += '6...6'
    73             line3 += '66666'
    74             line4 += '6...6'
    75             line5 += '66666'
    76         if i == '9' :
    77             line1 += '66666'
    78             line2 += '6...6'
    79             line3 += '66666'
    80             line4 += '....6'
    81             line5 += '66666'
    82     print line1
    83     print line2
    84     print line3
    85     print line4
    86     print line5
    87 
    88 if __name__ == "__main__":
    89     n = int(sys.stdin.readline())
    90     for i in range(n):
    91         line = sys.stdin.readline()
    92         res = eval(line)
    93         # print(res)
    94         show(res)

    D.暴力一波走了30分 其他的肝不动了= =

    E.这个复杂度高的一批 数据太水了吧

    (虽然加了一点玄学优化 可能就给优化掉了?

     1 #include<bits/stdc++.h>
     2 #define cl(a,b) memset(a,b,sizeof(a))
     3 #define debug(a) cerr<<#a<<"=="<<a<<endl
     4 using namespace std;
     5 typedef long long ll;
     6 typedef pair<int,int> pii;
     7 
     8 const int maxn=1e6+10;
     9 
    10 int n,k,h,mx;
    11 bool high[maxn<<1];
    12 int dp[maxn<<1];
    13 
    14 void check()
    15 {
    16     dp[0]=0;
    17     for(int i=0;i<=mx;i++)
    18     {
    19         for(int j=i+1;j<=i+h;j++)
    20         {
    21             if(high[j]) dp[2*j-i]=min(dp[2*j-i],dp[i]+1);
    22         }
    23     }
    24 
    25 }
    26 
    27 int main()
    28 {
    29     int x,ans=-1;
    30     mx=-1;
    31     scanf("%d%d%d",&n,&k,&h);
    32 
    33     for(int i=0;i<n;i++)
    34     {
    35         scanf("%d",&x);
    36         high[x]=true;
    37         mx=max(mx,x);
    38     }
    39     cl(dp,0x3f);
    40     check();
    41     for(int i=(mx<<1);i>=0;i--)
    42     {
    43         if(dp[i]<=k)
    44         {
    45             ans=i;
    46             break;
    47         }
    48     }
    49     printf("%d
    ",ans);
    50     return 0;
    51 }/*
    52 
    53 3 3 2
    54 1 3 6
    55 
    56 */
  • 相关阅读:
    java BufferedImage 合成多张图片
    JQ 输入框控制输入
    SpringBoot读取静态资源文件
    Java获取永久图文素材中的网页端Url
    生成随机32位Token43位asekey
    SQL语句模糊查询年月
    go语言学习笔记3----流程控制
    go语言学习笔记2----变量、常量
    go语言学习笔记1----数据类型
    kettle抽取数据判断是否有数据
  • 原文地址:https://www.cnblogs.com/general10/p/8641921.html
Copyright © 2011-2022 走看看