第八周结

这一周因为军训的缘故没有做太多的题。还是以做区间dp和做训练的题为主。从后往前说吧。周天的这个训练。我们实在是做的不是很好前两个半小时。一个题也没出。有一部分原因是因为题目没看懂,但是绝大部分原因是,那个题代码打出来了但是就是AC不了。
周天我是做的F
https://vjudge.net/contest/436274#problem/F
这个题其实刚开始觉得这个题还是挺好做的,用两个sort就行了但是做的时候总是提交超时当时我也没感觉他提交超时,随着时间一点一点过去我的心态也变得不是很好。最后,干脆不做了,但是也看不进去别的题。最后冷静了一会儿把cin换成了scanf他就奇迹般的对了。结束之后搜了一搜发现cin的编译时间是scanf的3到4倍。所以以后还是多多用scanf比较好。
周六也不是很理想或许是集训的题难了的原因AC的题也不是很多周六的题我们做出来的都是思维的题尤其是H题这个题就比较喜剧了你翻译过来就感觉这个题他是挺不好做的,但是你仔细想一想你就有感觉到了蹊跷。这个题是一个公平的题。这种题编译起来挺简单,但是别被题目的表象给绕进去。https://vjudge.net/contest/436158#problem/H
还有一个就是C题了
https://vjudge.net/contest/436158#problem/C
这个题目描述的就是给你两个数第一个数只能减,第二个只能加,最后求最小的变化量能够使第2个数摸第一个数为0。这个题看上去很简单但是当我做的时候他就普遍的超时。题解看了也没明白先贴上代码吧

cin>>n>>m;
    int s=sqrt(m)+1;
    int ans=inf;
    for(int i=1;i<=s;i++){
        int k=(m+i-1)/i;
        if(n>=i){
            ans=min(ans,n-i+k*i-m);
        }
        if(n>=k){
            ans=min(ans,n-k+k*i-m);
        }
    }
    cout<<ans<<endl;
   }

还有一个就是G题了
https://vjudge.net/contest/436158#problem/G
这个题就是让看懂错误的代码如果能找到一个代码使源代码的答案是错的那么就输出错误。这个题没做出来的原因就是想不全面来。
周五是在cf上打的那场比赛前两个题都特别简单。第三个题
https://codeforces.com/contest/1519/problem/C
看的懂有思路这个题就是给你几个队伍每个队伍给你几个数让你求能够取模的最大数。这个题是我挺想整理的一个题。这个题我搞不懂的是如何把他分成这串数分成都在自己的队伍里的数开始想用二重循环但是这个数太大了二重循环好像开不了这么大的。所以周五晚上就停下来了。没有继续做出来。第二天看了别人AC的代码其实也相当于一个二维数组,只不过他用的vector所以能够开出满足题意的数组。for (int i=1;i<=n;++i)V[u[i]].push_back(s[i]);用u[i]代表队伍的向里面挨个填元素就分好了。这个选手的代码中还有一个代码我比较感兴趣的

vector<ll> V[max_n];
int d[max_n];
bool cmp(int x,int y)
{
 return V[x].size()>V[y].size();
}
int main()
{
。。。。。
for (int i=1;i<=n;++i)d[i]=i;
  sort(d+1,d+1+n,cmp);
}

这串代码的作用应该是给vector数组排序按照数组元素从大到小。但是这个cmp函数和我之前用的函数有区别,之前我用的都是对谁进行排序就传进去啥数,而这个显然比我用的那个高级的多,他通过两个int 实现了vector数组的排序。感觉真的任何一个代码都能够被开发的很好。通过这几天的训练,真的有所收获,感觉自己不会的真的很多。不会的方法不会的算法不会的思维真的是太多太多了,真所谓打击越大,越清醒吧。因为这周没怎么做题的原因,整理的题比较少,区间dp也结束了,区间dp也不是学的那么明白但是它比线性dp来说学的稍微好一点。说到这儿了,发现我的线性dp也忘的差不多了是时候补一补了。
最后希望通过到9号这几天的努力能够哪一个自己不后悔的名次吧!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨晓翔同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值