正睿OI 2017冲刺T1Wa掉有点忧伤........

本次分享记录了一次线上编程比赛的经历,面对网络故障、编译器问题等挑战,选手在有限时间内完成任务。通过调整策略,修正了比较条件,最终成功解决了问题。本文详细介绍了问题解决的过程及代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



第一次线上正式比赛突发情况真多
先是机房网炸了
然后编译器炸了
最后只有一个小时来写T1
想了一想 码了个模拟就交了
测试先是A了
然而我并不知道这就是测试数据
于是查就交了
然后测完发现Wa了
最后发现是判断错了
if(ansa<ansb)完全没有意义
所以说应该是
if(ansa-pb<ansb-pa)
只有在收益小的时候在尝试去增加ansa or ansb
然后改了一下就A了
郁闷.......



#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <iomanip>
using namespace std;
int n,pa=1,pb=1;
double a[100001],b[100001],ans=0,ansa,ansb;
bool cmp(double aa,double bb){return aa>bb;}
int main()
{
 cin>>n; for (int i=1;i<=n;i++) {cin>>a[i]; a[i]--;}
 for (int i=1;i<=n;i++) {cin>>b[i]; b[i]--;}
 sort(a+1,a+n+1,cmp); sort(b+1,b+n+1,cmp);
 ansa=a[1]; ansb=b[1]; ans=max(ans,min(ansa-pb,ansb-pa));
 while (pa<n && pb<n)
 {
  if (ansa-pb<ansb-pa)
  {
   pa++;
   ansa+=a[pa];
   ans=max(ans,min(ansb-pa,ansa-pb)); 
  }
  else
  {
   pb++;
   ansb+=b[pb];
   ans=max(ans,min(ansa-pb,ansb-pa));  
  }
 }
 printf("%.4f",ans);
return 0;
}

### 关于OI集训资料和训练计划 #### 集训资料推荐 对于想要参与OI竞赛的学生来说,选择合适的资料至关重要。以下是几类常见的OI集训资料: 1. **书籍** 经典的算法书如《挑战程序设计竞赛》[^1] 和《算法导论》可以作为理论基础的学习材料。这些书籍涵盖了数据结构、图论以及动态规划等内容。 2. **在线课程与平台** 可以利用一些知名的编程学习网站来提升自己的技能水平,比如洛谷、Codeforces等。通过解决平台上不同难度级别的题目,逐步积累经验并掌握各种算法技巧[^2]。 3. **历年真题解析** 学习过往比赛中的经典试题及其解答方法非常重要。例如,在提到的一篇关于2021年牛客OI赛前集训营的文章中指出,“单次Dijkstra的时间复杂度为 \(O((n+m)\log n)\)” 这一知识点可以帮助理解最短路径问题的有效求解方式。 4. **总结文章** 来自其他参赛者的经验和教训同样宝贵。“OI集训总结”分享了一位选手的心路历程:“为了不辜负这四年的OI学习生涯”,表达了坚持到底的决心;而另一份针对普及组的比赛总结则强调了实际操作过程中需要注意的具体事项,像“准备一个输入用的s数组,还有ans数组”的细节处理[^3]。 #### 训练计划建议 制定合理的训练计划能够帮助更好地备战OI赛事: - **短期目标设定**: 如果距离式考试仅剩下两个月时间,则需集中精力弥补短板领域的同时巩固强项。考虑到“文化课落了很多”,可能需要合理分配每天用于ACM/OI练习与其他学业复习之间的时间比例。 - **专项突破**: 对薄弱环节进行针对性强化训练。如果发现自己在某些特定类型的题目上总是遇到困难(如贪心策略或者网络流),就应该多花些功夫去研究这类问题的特点及常用解决方案。 - **模拟实战演练**: 定期参加线上或线下的模拟测试活动,熟悉考场环境氛围,并检验自己当前的真实竞技状态如何调整后续备考方向。 ```c++ #include <stdio.h> int main(){ long long n; scanf("%lld",&n); printf("%lld", n&1?(n>>1)*((n>>1)+1):(n>>1)*(n>>1)-1 ); return 0; } ``` 上述C++代码片段展示了T2提取数字的一个实现例子[^4],从中可以看出简洁高效的编码风格也是成功完成任务的关键因素之一. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值