[杂题 神证明] BZOJ 4893 项链分赃

这个题的证明有点妙啊
结论是 切得刀数不超过颜色数

先扯那个地球问题 二维的情况也就是在圆周上 因为两者互换位置 两条图线必定有交点 就证完了
三维 在球面上 我们固定一维转动 看做无数个圆周 都可以找出两点气压一样 又因为函数连续 那么这两点的移动也是连续的 这样就锁定了一维必定相等 也就把问题压低了一维 也就是跟上面同理

然后这有什么用呢 这其实是跟两种颜色对应的问题是等价的
首先在这个题里离散和连续没什么大问题

这里写图片描述

然后任一切法一一对应到了球面上任一点
找到两点气压气温相同 也就是红色的差和绿色的差相同 那么说明差就是0

这里写图片描述

至于三种颜色 在四维球面上做就好了 反正证明是归纳式的

BTW 【官方双语】用球面映射巧解分赃难题:拓扑学的另一妙用

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<set>
using namespace std;
#define mp(a,b) make_pair(a,b)

const int N=100005;

int n,a[N],b[3],c[3];
set<pair<int,pair<int,int> > > Set;

int main(){
  freopen("t.in","r",stdin);
  freopen("t.out","w",stdout);
  scanf("%d",&n);
  for (int i=1;i<=n;i++)
    scanf("%d",a+i),b[a[i]]++;
  b[0]>>=1; b[1]>>=1; b[2]>>=1;
  for (int i=1;i<=n;i++){
    c[a[i]]++;
    if (b[0]==c[0] && b[1]==c[1] && b[2]==c[2]) return printf("1\n"),0;
  }
  c[0]=c[1]=c[2]=0;
  for (int i=1;i<=n;i++){
    c[a[i]]++;
    if (Set.count(mp(c[0]-b[0],mp(c[1]-b[1],c[2]-b[2])))) return printf("2"),0;
    Set.insert(mp(c[0],mp(c[1],c[2])));
  }
  return printf("3\n"),0;
}
### 回答1: bzoj作为一个计算机竞赛的在线评测系统,不仅可以提供大量的题目供程序员练习和学习,还可以帮助程序员提升算法和编程能力。为了更好地利用bzoj进行题目的学习和刷题,制定一个bzoj做题计划是非常有必要的。 首先,我们需要合理安排时间,每天留出一定的时间来做bzoj的题目。可以根据自己的时间安排,每天挑选适量的题目进行解答。可以先从难度较低的题目开始,逐渐提高难度,这样既能巩固基础知识,又能挑战自己的思维能力。 其次,要有一个计划和目标。可以规划一个每周或每月的题目数量目标,以及每个阶段要学习和掌握的算法知识点。可以根据bzoj的题目分类,如动态规划、图论、贪心算法等,结合自己的实际情况,有针对性地选择题目进行学习。 此外,要充分利用bzoj提供的资源。bzoj网站上有很多高质量的题解和优秀的解题代码,可以参考和学习。还有相关的讨论区,可以与其他程序员交流和讨论,共同进步。 最后,要坚持并保持思考。做题不是单纯为了刷数量,更重要的是学会思考和总结。遇到难题时,要有耐心,多思考,多尝试不同的解法。即使不能一次性解出来,也要学会思考和分析解题过程,以及可能出现的错误和优化。 总之,bzoj做题计划的关键在于合理安排时间、制定目标、利用资源、坚持思考。通过有计划的刷题,可以提高算法和编程能力,并培养解决问题的思维习惯,在计算机竞赛中取得更好的成绩。 ### 回答2: bzoj做题计划是指在bzoj这个在线测评系统上制定一套学习和刷题的计划,并且将计划记录在excel表格中。该计划主要包括以下几个方面的内容。 首先是学习目标的设定。通过分析自己的水平和知识缺口,可以设定一个合理的目标,比如每天解决一定数量的题目或者提高特定的算法掌握程度。 其次是题目选择的策略。在excel表格中可以记录下自己选择的题目编号、题目类型和难度等信息。可以根据题目的类型和难度来安排每天的刷题计划,确保自己可以逐步提高技巧和解题能力。 然后是学习进度的记录和管理。将每天的完成情况记录在excel表格中,可以清晰地看到自己的学习进度和任务完成情况。可以使用图表等功能来对学习进度进行可视化展示,更好地管理自己的学习计划。 同时,可以在excel表格的备注栏中记录下每道题目的解题思路、关键点和需要复习的知识点等信息。这样可以方便自己回顾和总结,巩固所学的知识。 最后,可以将excel表格与其他相关资料进行整合,比如算法教材、题目解析和学习笔记等。这样可以形成一个完整的学习档案,方便自己进行系统的学习和复习。 总之,bzoj做题计划excel的制定和记录可以帮助我们更加有条理和高效地进行学习和刷题。通过合理安排学习目标和题目选择策略,记录学习进度和思路,并整合其他学习资料,我们可以提高自己的解题能力,并在bzoj上取得更好的成绩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值