zoukankan      html  css  js  c++  java
  • 10月7日考试翻车实录

    A:

    链接:http://codeforces.com/contest/353/problem/D

    我好像一个智障一样……连后边一定晚于前边都没看出来……光注意错误的方向注意了两个小时……结果就是……爆零……人家都$A$了……

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 using namespace std;
     6 const int maxn=(int)1e6+5;
     7 char s[maxn];int f[maxn],cnt,las,fir,num,x[maxn],y[maxn],ans;
     8 int haha()
     9 {
    10     //freopen("line.in","r",stdin);
    11     //freopen("line.out","w",stdout);
    12     scanf("%s",s+1);int n=strlen(s+1);
    13     for(int i=1;i<=n;i++)
    14         if(s[i]=='M'){las=i;break;}
    15     if(!las){puts("0");return 0;}
    16     for(int i=las+1;i<=n;i++)
    17         if(s[i]=='F')x[++num]=i,y[num]=las+num-1;
    18     for(int i=1;i<=num;i++)
    19     {
    20         if(x[i]-y[i]>f[i-1])f[i]=x[i]-y[i];
    21         else f[i]=f[i-1]+1;ans=max(ans,f[i]);
    22     }
    23     printf("%d
    ",ans);
    24 }
    25 int sb=haha();
    26 int main(){;}
    CF353D

    B:

    链接:http://www.tsinsen.com/A1295

    这个东西……太神了太神了……考试时候根本想不出来怎么个前缀和方法……太强了太强了……

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 using namespace std;
     6 const int maxn=1005,maxm=15;
     7 double p[maxn][maxm],f[maxn][maxn][maxm],g[maxn][maxn][maxm];int n,m;
     8 int haha()
     9 {
    10     scanf("%d%d",&n,&m);
    11     for(int i=1;i<=n;i++)
    12         for(int j=1;j<=m;j++)scanf("%lf",&p[i][j]);
    13     for(int k=1;k<=m;k++)
    14         for(int i=1;i<=n;i++)
    15         {
    16             g[i][i][k]=p[i][k];
    17             for(int j=i+1;j<=n;j++)g[i][j][k]=g[i][j-1][k]*p[j][k];
    18         }
    19     for(int i=1;i<=n;i++)f[0][i][0]=1.0;
    20     for(int i=1;i<=n;i++)
    21         for(int j=1;j<=n;j++)
    22             for(int k=0;k<=m;k++)
    23             {
    24                 for(int l=0;l<=m;l++)
    25                     if(l!=k)f[i][j][k]+=f[i-1][j][l]*g[i][i][k]-(i-j-1>=0?f[i-j-1][j][l]*g[i-j][i][k]:0);
    26                 f[i][j][k]+=f[i-1][j][k]*g[i][i][k];
    27             }
    28     double ans=0;
    29     for(int i=1;i<=n;i++)
    30         for(int j=1;j<=m;j++)ans+=(f[n][i][j]-f[n][i-1][j])*i;
    31     printf("%0.6lf
    ",ans);
    32 }
    33 int sb=haha();
    34 int main(){;}
    A1295

    C:

    链接:http://codeforces.com/problemset/problem/348/C

    数据太水了……绝望的暴力拿了$95$分……剩下一个点还是莫名其妙$WA$了……正解的那个按集合大小分类啊,$excited$!

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=100005,maxk=350;
     4 long long add[maxk],sum[maxk],tot[maxn];int id[maxn],cnt[maxn][maxk],c[maxn],n,m,q,k;
     5 bool h[maxn];
     6 vector<int>g[maxn],t[maxn];
     7 int haha()
     8 {
     9     while(scanf("%d%d%d",&n,&m,&q)!=EOF)
    10     {
    11         for(int i=1;i<=n;i++)scanf("%I64d",&tot[i]);k=0;
    12         for(int i=1;i<=m;i++)
    13         {
    14             scanf("%d",&c[i]);
    15             if(c[i]>=maxk)h[i]=1,id[i]=++k;
    16             else h[i]=0;
    17             for(int j=1;j<=c[i];j++)
    18             {
    19                 int x;scanf("%d",&x);g[i].push_back(x);
    20                 if(h[i])t[x].push_back(k),sum[k]+=tot[x];
    21             }
    22         }
    23         for(int i=1;i<=m;i++)
    24             for(int j=0;j<g[i].size();j++)
    25             {
    26                 int x=g[i][j];
    27                 for(int kk=0;kk<t[x].size();kk++)
    28                 {
    29                     int v=t[x][kk];
    30                     cnt[i][v]++;
    31                 }
    32             }
    33         while(q--)
    34         {
    35             char opt[4];int p;long long x;scanf("%s%d",opt,&p);
    36             if(opt[0]=='?')
    37             {
    38                 long long ans=0;
    39                 if(h[p])
    40                 {
    41                     ans+=sum[id[p]];
    42                     for(int i=1;i<=k;i++)ans+=cnt[p][i]*add[i];
    43                 }
    44                 else 
    45                 {
    46                     for(int i=0;i<g[p].size();i++)ans+=tot[g[p][i]];
    47                     for(int i=1;i<=k;i++)ans+=cnt[p][i]*add[i];
    48                 }
    49                 printf("%I64d
    ",ans);
    50             }
    51             else
    52             {
    53                 scanf("%I64d",&x);
    54                 if(h[p])add[id[p]]+=x;
    55                 else
    56                 {
    57                     for(int i=0;i<g[p].size();i++)tot[g[p][i]]+=x;
    58                     for(int i=1;i<=k;i++)sum[i]+=cnt[p][i]*x;
    59                 }
    60             }
    61         }
    62     }
    63 }
    64 int sb=haha();
    65 int main(){;}
    CF348C
  • 相关阅读:
    遍历当前窗口名字
    Delphi获取其它进程窗口句柄的3种方法
    Delphi判断一个字符是否为汉字的最佳方法
    Delphi拷贝目录(含子目录)的方法
    贴一份用delphi修改注册表改网卡MAC地址的代码
    delphi的TFileStream 内存流
    Delphi的ListView自动排序
    Delphi中上指定进程(进程名)
    Delphi-IP地址的隐藏
    C# 简单线程实例
  • 原文地址:https://www.cnblogs.com/Loser-of-Life/p/7636489.html
Copyright © 2011-2022 走看看