比赛总结

昨天和sduwh打了场友谊赛。题目整体并不难,绝大多数都是基本的数学问题,然而出题的情况极其糟糕。之前就让队友去负责弄数学专题,看来队友也没好好弄,我也没去落实,是我做队长的失职,或许我本身就不适合做队长。

下面结合题目对本次比赛做一个总结:

A题:简单数学题。求N!末尾0的个数。N!=2^k1*3^k2*4^k3*5^k4……对于0的产生只能由2和5相乘得到,于是ans=min(k1,k4),而显然k1>=k4,于是ans=k4。对于给定的n,考虑不超过n的数中,有多少个能被5整除,有多少个能被5^2整除……有多少个能被5^m(<=n)整除,累加起来就是答案k4。

B题:计算几何。求两中心重合,焦点分别位于x、y轴的椭圆相交面积。简单的数学题,求出任意一个象限里的交点后,一重积分计算该象限内面积,结果乘4即可。可惜没看题。注意力都在C题上了。

C题:简单贪心。对于N,构造最小的正整数Q使得Q的各个位上数的乘积为N,无解时输出-1。一开始队友给我说从2开始除,其实从这里就开始错了。后面的debug都是在围绕着这个错误在进行:比如上一位得到的数与当前得到的数相乘小于10的时候怎么办?想到的是把其乘到上一位数中,最后再对结果排序,这样是错误的。比如n=201600,正确的结果是:2557889,而按照之前的算法得到的却是3556788,原因就是因为从2开始除,导致得到的数的低位并不是最大的。正确的做法是:要使得Q尽量小,则应当使得N的因子尽可能大的放在低位上,即从9开始除,依次得到低位到高位的数值。另外注意读题:Q是正整数,因此N=0的时候,应当输出10.而不是-1或者0。

D题:极其简单的hash+枚举。比赛时也没看题。

E题:枚举。N条边,能组成多少个不同的三角形。由于精力都耗在C题的debug上了,不然这题还是可以做的。排序后枚举最大的那条边i,和次大的那条边j,对于最小的那条边k只需s[k]+s[j]>s[i]即可。一种方法是二分查找使得s[i]-s[j]<s[k]的最大位置k,结果即为k-j。时间复杂度为n*2lgn,然而学长说这样搞,优化得不好可能会超时。。时限给了6s,我觉得如果是1e8/s的话,还是可以过的。。。题解上提出了n^2的算法:在前面查找最大位置k时,可以发现,当由n移动到k时,次大的边的上界R也会相应地移动,就是说不用再循环到n,因为下一次枚举的次大边长不会超过这次,所以枚举的最小的边的起点一定不大于上一次的位置,(表述能力实在有限,画图最容易理解了)于是枚举次大边L(从前往后,由大到小),和最小的边R(从后往前,由小到大),当R移动时,L的上界也随之改变,当L与R重合时结束循环,就变成n^2了。

F题:简单组合数学、模拟。给n、m输出C(n,m)组合的所有情况。

G题:数学题。斯特林数、贝尔数。同hdu 2512

H题:DP。整数划分问题。

I题:区间DP

J题:数论,费马平方和定理。求最小的平方和x^2+y^2,使x^2+y^2=0 mod p。

K题:计算几何。凸包+旋转卡壳。搞毛啊,队友一拿到题就做这题,说是贪心。然后就开始敲。。然后就没有然后了。

通过这次比赛,明白数学的重要性,也明白了队友并不一定可靠,数学专题什么的还是我自己弄吧,也不过就是辛苦点,多学点东西。

时间: 2024-10-24 15:17:37

比赛总结的相关文章

NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推 ||卡特兰数(转化成01字符串))

Description 今天西工大举办了一场比赛总共有m+n人,但是有m人比较懒没带电脑,另外的n个人带了电脑.不幸的是,今天机房的电脑全坏了只能用带的电脑,一台电脑最多两人公用,确保n>=m.但是大家来的时间不同,随机次序来机房,带电脑的人直接准备比赛而没带电脑的人需要向带电脑并还没和别人公用的人求助(当然会答应).但是,如果不存在带电脑并还没和别人公用的人,那他就要等了,等是很让人头疼的,这就不和谐了,当然假如没有这样的情况发生比赛是很和谐的. Input 输入多组数据,每组数据只有一行m(

NOJ 2015年陕西省程序设计竞赛网络预赛(正式赛)(和谐的比赛-dp寻路)

F - 和谐的比赛 Time Limit: 3000 ms        Memory Limit: 10240 KB Submit Description 今天西工大举办了一场比赛总共有m+n人,但是有m人比较懒没带电脑,另外的n个人带了电脑.不幸的是,今天机房的电脑全坏了只能用带的电脑,一台电脑最多两人公用,确保n>=m.但是大家来的时间不同,随机次序来机房,带电脑的人直接准备比赛而没带电脑的人需要向带电脑并还没和别人公用的人求助(当然会答应).但是,如果不存在带电脑并还没和别人公用的人,那

口袋中球的取出顺序问题,比赛名单问题

对于以下这两种问题是离散数学与概论在编程中的应用: 两个乒乓球队进行比赛,各队人.甲队为A,B,C     乙队为 X,Y,Z    抽签决定比赛名单.有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比,请编程序找出3组比赛名单 #include<stdio.h> void Game_list() { char i,j,k; /*i是a的对手;j是b的对手;k是c的对手*/ for (i='x';i<='z';i++) for (j='x';j<='z';j++) if (

ACM比赛经验

ACM比赛经验: 推荐此篇文章打印,与模板放在一起. 1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果,必须开工其他题,如果WA,两道题同时做.交完每道题都要先打印. 2. 比赛时发的饭不是让你当时就吃的,那是给你赛后吃的.基本上比赛中前几名的队都没人吃,除非领先很多. 3. 很多选手,尤其是第一次参加比赛的,到一个新环境,全当旅游了,参观的参观,找同学的找同学,玩玩乐乐就把正事抛到脑后了,结果比赛自然没什么好成绩,这样的例子太多了.所以到参赛地后要时刻不

P2658 汽车拉力比赛

题目描述 博艾市将要举行一场汽车拉力比赛. 赛场凹凸不平,所以被描述为M*N的网格来表示海拔高度(1≤ M,N ≤500),每个单元格的海拔范围在0到10^9之间. 其中一些单元格被定义为路标.组织者希望给整个路线指定一个难度系数D,这样参赛选手从任一路标到达别的路标所经过的路径上相邻单元格的海拔高度差不会大于D.也就是说这个难度系数D指的是保证所有路标相互可达的最小值.任一单元格和其东西南北四个方向上的单元格都是相邻的. 输入输出格式 输入格式: 第一行两个整数M和N.第2行到第M+1行,每行

收集几个打算做的kaggle比赛

1.  Display Advertising Challenge 目测是关于广告CTR预估的. .新实习看起来是做广告的,恶补一个. 2. Quora Question Pairs 美丽的小姐姐给我推荐的比赛,判断两个quora上的问题是否是一样的.一颗赛艇.

排球比赛第一局计分系统

一·计划 估计这个计划需要3h 二·开发 需求分析:作为一个现场记分员,我希望详细记录比赛现场比分增长情况,以便观众及运动员,教练员及时掌握赛况(每一次比分都要形成一条记录). 生成设计文档:用三层架构来完成,借助DataGridView控件,将添加的比分数据加载到DataGridView中. 设计复审:还没做 代码规范:有错误提示没解决 具体设计:我的想法是用窗体界面将每一次得分和得分队员的数据写出来,然后将数据导入数据库中,再将数据库的数据用DataGridView把我每一次添加的数据给显示

排球比赛记分员

完成这个项目需要一周 1.作为一名现场记分员,我希望详细记录比赛现场比赛情况,以便观众及时掌握比赛情况. 2.需求分析:根据用户需求可知我们此次程序需要做到每次分数变化的时候都要记录.当记分元操作之后就要形成记录. 3.生成设计文档: 由排球比赛用户故事的需求分析可知,此程序是用来记录现场比分情况. 计划复审 目前在进行中 代码规范 根据Visual Studio 2010规范去写. 计划复审 目前在进行中 public static object ExecuteScalar(string sq

排球比赛计分规则

开发流程如下: ·项目计划 完成这个项目需要的时间:3~5天 ·项目开发 ·需求分析 .用户故事: ·作为一名现场记分员,我希望详细记录比赛现场比分增长情况,以便观众及运动员.教练员及时掌握比赛状况.(满意条件:每一次比分的改变,都要形成一条记录). ·生成设计文档 ·由排球比赛用户故事的需求分析可知,此程序是用来统计各个队伍的总比分和队伍中每个球员的详细得分情况的,并针对每一次比分的改变,都要形成一条记录. ·计划复审 ·正在进一步的商讨中. ·代码规范 ·根据Visual Studio 20

排球比赛记分规则

计划  ·估计这个人任务需要1-2周 开发     ·需求分析 用户故事:作为一名现场记分员,我希望详细记录比赛现场比分增长情况,以便观众及运动员.教练员及时掌握比赛状况. ·生成设计文档 在运行的界面中可以看到中国队与塞尔维亚对的比分,点击加分和减分会在文本框中出现对应的数字. ·设计复审:对于这个需求目前做的还不算太完善,下周对下面的进行完善. ·代码规范:使用VS2010对代码进行规范. ·具体设计 ·具体编码: protected void Button1_Click(object se