2018 HBCPC 菜鸡选手记

5人阅读 评论(0) 收藏 举报
分类:

我果然太菜了

作为学校最菜的队员,今天下午被虐惨了。
一下午才做A-D四道题
官方题解链接
晚上吃完饭再去看。

A

队友A的不清楚。没看题。

B——T2

多组数据,每行都是这个格式

R r L

r两个球的半径
L两球距离

0<R,r,L100,|Rr|<L|R+r|

求两个球的组合体的表面积

正确答案是a
a大于1时,相对误差不超过106
否则,绝对误差不超过106

链接

这是一道数学题
球冠表面积公式

S=2πrh

然后关键是求h。
数学渣渣加空间想象能力不好的我做了一个小时才做出来。中间莫名wa了两次,最后发现是式子退错了。改正后还是wa,最后怀疑是精度问题。把余弦定理的式子代进去,然后发现分母的一个R可以约去,精度误差–;然后把cout换成printf(这个很迷)。总算AC了。
两个球的组合体
若是相交,一定是个圆(当然还有可能刚好缩成一个点)。

#include <cmath>
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const double mypi = atan(1)*4;
double R,r,L,h,H,s,S,ans,c1,c2;
/*double ccc(double a,double b,double c)
{
    return (b*b+c*c-a*a)/(2*b*c);
}*/
int main()
{
    while (cin>>R>>r>>L) {
        /*c1 = ccc(r,R,L);
        c2 = ccc(R,r,L);
        H = min(2*R,R+R*c1);
        h = min(2*r,r+r*c2);
        S = 2*mypi*R*H;
        s = 2*mypi*r*h;*/
        H = R+min(R,((R+r)*(R-r)/L+L)/2);
        h = r+min(r,((R+r)*(r-R)/L+L)/2);
        ans = R*H+r*h;
        ans = ans*2*mypi;
        printf("%lf\n",ans);
    }
    return 0;
}

之后队友说他D题一句话翻译不出来,死活搞不懂样例啥意思,不然就A了。叫我看看。
然后开始看题,看完之后发现是个水题。

D——T4

操作
1. 附加一条commit,此时增加一个新版本
2. 恢复到第i天的状态

初始——day0
每天会执行一个操作
系统会计算整个项目的hash值,校验和所有有效不包括回复撤销掉的版本)commit的校验和的亦或值。
任务:计算所有的校验和

工程天数

n

接着按时间顺序有n行操作,是:
1. > commit x
2. > checkout k

每一天结束操作之后输出工程的校验和

样例解释
day0 checksum = 0
day1 commit 1 checksum = 0^1 = 1
day2 commit 2 checksum = 1^2 = 3
day3 checkout 1 checksum看day1的chekcsum是什么,day1是1
day4 ceckout 0 checksum看day0,是0

总之,commit x就是用前一天的checksum = checksum^x
checkout x 就是看day x的checksum是什么,是什么就直接抄过来
因为checkout x是回复到day x的工作转态,所以之后的都是失效的。

ps,最后我弄明白了他哪里没看懂,他把revert看成reverse了,以为是checkout是使某天激活or失效,然后就样例解释不通了。
最后让他A了这题

C——T3

求题目给的排序方法(貌似是冒泡)的期望交换次数
1-n共n个数的排列逆序数和正序数的和一定是C(n,2).C(n,2)是组合数。因为n个数里选两个要不就是逆序要不就是正序
对于n个数的所有排列的逆序数的和与正序数的和显然相等,而这两个和相加就是X+Y=n!C(n,2);X=Y
因此n个数的排列的期望(平均)逆序数就是X=C(n,2)/2=n×(n1)4
但是题目要求若是分数pq输出p×q109+5(mod109+7)
但是X=n×(n1)4化为最简要不就是整数要不就是p2
也就是说后面的q109+5(mod109+7)是固定的一个数,而且题目样例很好的给出了这个数p2的结果等于直接给出了这个数是500000004

#include <cmath>
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const long long ttt = 500000004ll;
const long long p = 1000000007ll;
long long n,nn,ans;
int main()
{
    while (cin>>n) {
        nn = n-1ll;
        n%=p;nn%=p;
        switch(n%4) {
        case 0:
            n/=4;
            ans=(n*nn)%p;
            break;
        case 1:
            nn/=4;
            ans=(n*nn)%p;
            break;
        case 2:
            n/=2;
            ans=(n*nn)%p;
            ans=(ans*ttt)%p;
            break;
        case 3:
            nn/=2;
            ans=(n*nn)%p;
            ans=(ans*ttt)%p;
            break;
        }
        cout<<ans<<endl;
    }
    return 0;
}

F

F是求无权无向图的直径
点数n,边数m

n m

m行

u v

所有点对之间的距离的最大值即图的直径。
1n105
1m2105$
蒟蒻只会每个点出发,然后bfs求距离,之后取最大,当然这样是无情地tle.
然后各种百度也是无果。

查看评论

OpenGL零基础入门(2018)

本课程带领完全没有OpenGL基础的同学,入门OpenGL世界
  • 2017年12月01日 17:50

菜鸡的BFS~求大大佬们勿喷——马的遍历

emmm,菜鸡在这里记录一下BFS模板,给一个二逼青年,希望大家不要喷我。。。#include #include #include #include #include using names...
  • wuyanmaa
  • wuyanmaa
  • 2018-01-21 13:56:29
  • 95

2018-01-17随手记

今日一清早老大叫我做CS版本的抽奖。中午做完优化时,发现一严重现象。给Winfrom窗体的背景图片自适应,全屏显示时始终闪烁,故在网上找到解决方法。今日记录下来,以便他日不时之需。 第一步:在窗体构...
  • qq_40152111
  • qq_40152111
  • 2018-01-17 15:30:01
  • 54

2018年3月8日 随手记

Q: (涉及ajax跨域)浏览器在发正式请求之前先向服务器发了一条options请求?(1)什么情况下会发options请求?(2)options请求的作用是什么?A: ajax跨域:?待学习服务器跨...
  • weixin_41810396
  • weixin_41810396
  • 2018-03-08 23:00:17
  • 27

菜鸡的从零开始的web笔记---选择器

/**{color: red;}*/ .dad>p{color:red} /*子代选择器*/ div p:nth-child(1){color: green;} /*制定哪...
  • bzxyj123
  • bzxyj123
  • 2017-01-14 19:34:44
  • 79

135全自动抓鸡工具日抓万鸡

  • 2011年03月12日 20:38
  • 330KB
  • 下载

LabVIEW选菜

  • 2012年11月30日 12:10
  • 15.12MB
  • 下载

2018年全国多校算法寒假训练营练习比赛(第一场)-A大吉大利,今晚吃鸡——枪械篇

题目描述     在绝地求生(吃鸡)游戏里,不同的枪支有不同的威力,更是可以搭配不同的配件,以提升枪支的性能。     每一把枪都有其威力及其可装备配件种类。每一个配件有其所...
  • Li_Hongcheng
  • Li_Hongcheng
  • 2018-01-21 20:12:36
  • 241

自动选菜小程序,不用每天发愁吃什么了

  • 2010年01月19日 15:57
  • 1KB
  • 下载

2018年东北农业大学春季校赛 H why的吃鸡

链接:点击打开链接题目描述 最近吃鸡游戏非常火,你们wyh学长也在玩这款游戏,这款游戏有一个非常重要的过程,就是要跑到安全区内,否则就会中毒持续消耗血量,我们这个问题简化如下 假设地图为n*...
  • bao___zi
  • bao___zi
  • 2018-04-05 23:56:15
  • 70
    个人资料
    等级:
    访问量: 155
    积分: 65
    排名: 162万+
    文章分类
    文章存档