充满了艰难的造题之幼儿园测试【历史考试】

本题原版:

题目背景:

(一个奇怪的题目背景可以跳过了) 

cxk看了一眼幼儿园的历史试卷,就把它扔给了你,然后跑去练习唱,跳,rap,篮球。  

人生五十年,与天地相较,如梦似幻

      

    ----------------某看起来并不来自中国的历史试卷

  在并不众所周知的日本战国历史中,有一场轰轰烈烈的烧烤大会。(具体请在做完题后百度本能寺之变)

题目描述:

明智光秀在京都唯一的出口处放了一把大火,火蔓延到了很多的据点。已知信长距离出口有n个据点,据点i的火力值是ai。信长从l据点走到r据点所受的伤害是Σai(l<=i<=r)。每过一段时间,某个据点的火力值可能会变。为了逃出本能寺(达成zw2的he)在接下来q的时间里,信长会时不时问你从l走到r和从l1走到r1的最大伤害,以便损失更少的体力逃出去,当然这段时间内某些点的火力值会改变。

输入格式:

第一行,两个整数n,q

第二行,n个整数,第i个数为ai

接下来q行,分两种情况。

第1个数为0:输入m,b,代表第i个点的火力值改为b

第1个数为1:输入l,r,l1,r1。这是一次询问

输出格式:

对于每次询问,输出最大的伤害值,换行

但是数据范围过大不好(xiang)讲so它就变成了以下版本

因为数据太高了之后窝也不会所以标程就是个暴力了(玄学估计复杂度暴力能过)

怎么暴力呢?

每读入一个字符串,就暴力的将它与前面的字符串比较,用ans数组记录每个字符串出现的次数。

在比较时,从后往前扫,最终每个字符串出现的次数记录在ans里面,第一次出现该字符串时的编号为下标(极其暴力极其朴素欢迎踩爆标程)

#include<iostream>//bao li O(n^2)
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
int n,all,ans[1005],ans2[1005];
const int mod1=1e9+7;
char c[1005][105];
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
      scanf("%s",c[i]);bool flag=0;
      int kans=0,last=i;
      for(int j=i-1;j>=1;j--)
      {
          if(strcmp(c[j],c[i])==0)
          {  kans++;
              last=j;
        }
      }
      ans[last]+=kans;
    }
    int maxn=-1,maxi=-1;
    for(int i=1;i<=n;i++)
    {
        if(ans[i]>maxn)
        {
            maxi=i;maxn=ans[i];
        }
    }
    printf("%s",c[maxi]);
}

 暴力的标程竟然过了wz小姐姐的数据

原文地址:https://www.cnblogs.com/lcez56jsy/p/11087882.html