zoukankan      html  css  js  c++  java
  • 2013 年 acm 长春现场赛

    A - Hard Code Hdu 4813

    题目大意:给你一坨字符串,让你输出其栅栏密码的解码形式

    思路:水题模拟

     1 #include<iostream>
     2 #include<cstdio>
     3 #include <math.h>
     4 #include<algorithm>
     5 #include<string.h>
     6 #include<queue>
     7 #define MOD 1000003
     8 #define maxn 2009
     9 using namespace std;
    10 char ch[maxn];
    11 int main()
    12 {
    13         int n,m,t;
    14         scanf("%d",&t);
    15         while(t--)
    16         {
    17                 scanf("%d%d",&n,&m);
    18                 scanf("%s",ch+1);
    19                 int now=0;
    20                 for(int i=1;i<=n;i++)
    21                 {
    22                         for(int j=1;j<=m;j++)
    23                         {
    24                                 printf("%c",ch[++now]);
    25                         }
    26                         printf("
    ");
    27                 }
    28         }
    29         return 0;
    30 }
    View Code

     C - Little Tiger vs. Deep Monkey HDU4815

    题目大意:有N道题目,每道题目有一定分值,现在猴子同学是乱答的,也就是每道题有50%的机会答对,问至少要答对多少分才能使赢猴子的概率大于P

    思路:概率DP,dp[i][mark]表示回答到第i道题,猴子得到mark分的概率,所以转移就是dp[i][mark]=dp[i-1][mark-a[i]]*0.5+dp[i-1][mark]*0.5

     1 #include<iostream>
     2 #include<cstdio>
     3 #include <math.h>
     4 #include<algorithm>
     5 #include<string.h>
     6 #include<queue>
     7 #define MOD 1000003
     8 #define maxn 2009
     9 using namespace std;
    10 double dp[50][1001*40];
    11 int a[3009];
    12 int main()
    13 {
    14         int t;
    15         scanf("%d",&t);
    16         while(t--)
    17         {
    18                 memset(dp,0,sizeof(dp));
    19                 int n,sum=0;double p;
    20                 scanf("%d%lf",&n,&p);
    21                 dp[0][0]=1;
    22                 for(int i=1;i<=n;i++)scanf("%d",&a[i]),sum+=a[i];
    23                 for(int i=1;i<=n;i++)
    24                 {
    25                         for(int j=0;j<=sum;j++)
    26                         {
    27                                 if(j<a[i])dp[i][j]=dp[i-1][j]*0.5;
    28                                 else dp[i][j]=dp[i-1][j-a[i]]*0.5+dp[i-1][j]*0.5;
    29                         }
    30                 }
    31                 for(int i=0;i<=sum;i++)
    32                 {
    33                         dp[n][i]+=dp[n][i-1];
    34                         if(dp[n][i]>=p){printf("%d
    ",i);break;}
    35                 }
    36         }
    37         return 0;
    38 }
    View Code

     G - Mosaic

    二维线段树,解题在:http://www.cnblogs.com/philippica/p/4279969.html

  • 相关阅读:
    数据分析三剑客numpy pandas Matplotlib
    算法 初识
    python 爬虫二
    python 爬虫一
    python celery
    elasticsearch 学习
    ansible 基本使用
    面试题
    奇技淫巧
    【前端基础】- CSS 1-CSS选择器
  • 原文地址:https://www.cnblogs.com/philippica/p/4276097.html
Copyright © 2011-2022 走看看