事情总是么得那么简单( ・´ω`・ )

#509A Heist  人的思维是发展的……

  随手拍乱码

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long k[1010],n;
unsigned long long sum=0;
int i;
int main()
{
    cin>>n;
    for( i=0;i<n;i++)
        scanf("%lld",&k[i]);
    sort(k,k+n);
    for(i=1;i<n;i++)
        sum+=k[i]-k[i-1];    
    cout<<sum-n+1<<endl;
    return 0;
}
#509A

  给出n个数,判断最少少了几个数(Point 1:一定是少了)

  在整理之前看了一下ac码:我为什么写的这么复杂(`・ω・´)。然后随手写了个cout<<最大值减最小值减n再加一<<endl交了一发,wa的点比初见还早。upd:后来大佬发现最小值的初值设的不够大orz

  看来事情没有这么简单。

  又看了一下初见的两个wa,第一个sum没开ull(Point 2:1e9的1000个加法)但是我现在肯定不会把数组开longlong,第一第二个都有一条if(sum==n)cout<<0<<endl;嗯这是Point 1的错误。

  总之因为连续的数所以相邻数的差的和应该比个数少1,如果跳过了数,现在的sum就会比原来的多跳过的个数。“sum-(n-1)”

  我还是举个例子吧,以后再看这篇我肯定懒得再想(。・ω・。)

  e.g.4 5 6--->4 6,(n,sum)原先是(3,2),现在是(2,2),连续的应该是(2,1)。

 

#509B Buying a TV Set  写之前多花点时间理解题意,评测机就可以少花点时间在我的乱码上

  给a,b,x,y,问在p不超过a,q不超过b的情况下有多少对p,q满足p/q=x/y。

  行吧,我觉得这么翻译出来做法就很明显了——先把x,y约分(gcd),然后看看a里有几个x,b里有几个y,输出最少的那个,完。

  然而我一开始不知道为什么认为xy里有好几个gcd(x,y),这也无伤大雅,我还认为大小会影响它们在比例式中的位置,于是还按大小重新换了一下位置,评测机wawa大哭。

 

#510A Benches  计算还是不计算,这是一个问题

  有n个长凳,m个没坐下的人,给出每个长凳已经坐着的人数,求m坐下后可能存在的最少的人数和最多的人数。

  试图通过已知最值的“有人数”加上平均新坐下的人数来计算出答案,大失败,因为当前最优可坐的长凳(当前坐着的人最少的那个)是不断变化的,而这个问题我还是试图计算解决,因为怕不停地排序会t。事实上,是的,这个数据不大,坐下一个人sort一下就好了。

  超暴力!(╯°Д°)╯

 

  昨晚有一场div3,7wa1a,就开了AB两个题。人的思维定式真的可怕,特别在压力加疲劳的情况下,很难摆脱这种“想当然”,不管是想太多还是想不到,唉都是对立统一的。再看看这些曾经a掉的题,虽然当时wa了好几次,但是总觉得比现在离正答更近。最近觉得又是新一轮迷茫。anyway,菜是原罪,迷茫还是想得太多做得太少。

upd:后来发现是8wa_(:з」∠)_

 posted on 2019-04-01 20:02  Nonad  阅读(115)  评论(0编辑  收藏  举报