我果然太菜了

作为学校最菜的队员,今天下午被虐惨了。

一下午才做A-D四道题

官方题解链接

晚上吃完饭再去看。

A

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

B——T2

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

R r L

r两个球的半径

L两球距离

0&lt;R,r,L≤100,|R−r|&lt;L≤|R+r|" role="presentation">0<R,r,L≤100,|R−r|<L≤|R+r|0<R,r,L≤100,|R−r|<L≤|R+r|

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

正确答案是a

a大于1时,相对误差不超过10−6" role="presentation">10−610−6

否则,绝对误差不超过10−6" role="presentation">10−610−6

链接

这是一道数学题

球冠表面积公式

S=2πrh" role="presentation">S=2πrhS=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)" role="presentation">C(n,2)C(n,2).C(n,2)" role="presentation">C(n,2)C(n,2)是组合数。因为n个数里选两个要不就是逆序要不就是正序

对于n个数的所有排列的逆序数的和与正序数的和显然相等,而这两个和相加就是X+Y=n!C(n,2);X=Y" role="presentation">X+Y=n!C(n,2);X=YX+Y=n!C(n,2);X=Y

因此n个数的排列的期望(平均)逆序数就是X=C(n,2)/2=n×(n−1)4" role="presentation">X=C(n,2)/2=n×(n−1)4X=C(n,2)/2=n×(n−1)4

但是题目要求若是分数pq" role="presentation">pqpq输出p×q109+5(mod109+7)" role="presentation">p×q109+5(mod109+7)p×q109+5(mod109+7)

但是X=n×(n−1)4" role="presentation">X=n×(n−1)4X=n×(n−1)4化为最简要不就是整数要不就是p2" role="presentation">p2p2

也就是说后面的q109+5(mod109+7)" role="presentation">q109+5(mod109+7)q109+5(mod109+7)是固定的一个数,而且题目样例很好的给出了这个数p2" role="presentation">p2p2的结果等于直接给出了这个数是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

所有点对之间的距离的最大值即图的直径。

1≤n≤105" role="presentation">1≤n≤1051≤n≤105

1≤m≤2∗105" role="presentation">1≤m≤2∗1051≤m≤2∗105$

蒟蒻只会每个点出发,然后bfs求距离,之后取最大,当然这样是无情地tle.

然后各种百度也是无果。

2018 HBCPC 菜鸡选手记的更多相关文章

  1. ACM菜鸡退役帖——ACM究竟给了我什么?

    这个ACM退役帖,诸多原因(一言难尽...),终于决定在我大三下学期开始的时候写出来.下面说两个重要的原因. 其一是觉得菜鸡的ACM之旅没人会看的,但是新学期开始了,总结一下,只为了更好的出发吧. 其 ...

  2. 渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(下)

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/12/es-code03/ 前提 上篇文章写完了 ES 流程启动的一部分,main 方法都入 ...

  3. 渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(上)

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/11/es-code02/ 前提 上篇文章写了 ElasticSearch 源码解析 -- ...

  4. 渣渣菜鸡的 ElasticSearch 源码解析 —— 环境搭建

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/25/es-code01/ 软件环境 1.Intellij Idea:2018.2版本 2. ...

  5. Html菜鸡大杂烩

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. HDU 2064 菜鸡第一次写博客

    果然集训就是学长学姐天天传授水铜的动态规划和搜索,今天讲DP由于困意加上面瘫学长"听不懂就是你不行"的呵呵传授,全程梦游.最后面对连入门都算不上的几道动态规划,我的内心一片宁静,甚 ...

  7. 菜鸡谈OO 第二单元总结

    “欢迎来到(玄学)多线程的新世界” Homework1 单部傻瓜电梯调度 Part1 多线程设计策略 第一次学到了线程这个概念,与之前的编程体验大有不同.最大的区别在于从原本的线性发生程序变成了多个行 ...

  8. 菜鸡谈OO 第一单元总结

    “OOP永远是我的好朋友爸爸!” ——来自某无能狂怒的菜鸡 身处在OO的第一个摸鱼黄金周中的我,感觉到了巨大的满足感.如果写博客这种充满意义的事情可以代替我们亲爱的作业,那么我提议每周来两个:)下面开 ...

  9. 一个数学不好的菜鸡的快速沃尔什变换(FWT)学习笔记

    一个数学不好的菜鸡的快速沃尔什变换(FWT)学习笔记 曾经某个下午我以为我会了FWT,结果现在一丁点也想不起来了--看来"学"完新东西不经常做题不写博客,就白学了 = = 我没啥智 ...

随机推荐

  1. Python 实现转堆排序算法原理及时间复杂度(多图解释)

    原创文章出自公众号:「码农富哥」,欢迎转载和关注,如转载请注明出处! 堆基本概念 堆排序是一个很重要的排序算法,它是高效率的排序算法,复杂度是O(nlogn),堆排序不仅是面试进场考的重点,而且在很多 ...

  2. Basic Auth攻击

    1.Basic Auth认证简介 Basic身份认证,是HTTP 1.0中引入的认证方案之一.虽然方案比较古老,同时存在安全缺陷,但由于实现简单,至今仍有不少网站在使用它. 例如Apche Tomca ...

  3. linux入门系列14--ssh服务及主机远程管理

    通过前面十余篇文章的介绍,相信已经初步入门Linux本地管理的基本方法了,后续的文章将介绍Linux中常用的服务部署以及如何为外部提供相应的服务. 系列文章第三篇"linux入门系列3--l ...

  4. 【转载】SPI总线和I2C总线的异同点

    来源:https://blog.csdn.net/lishun1422840684/article/details/77776763 总结的简单.明了.适用! 一:SPI接口的全称是"Ser ...

  5. Leetcode:面试题 04.03. 特定深度节点链表

    Leetcode:面试题 04.03. 特定深度节点链表 Leetcode:面试题 04.03. 特定深度节点链表 先贴一下自己写过一个模板,按层数遍历: https://www.cnblogs.co ...

  6. Tomcat 项目部署、账户配置、状态监测

    tomcat部署项目 方式一.自动部署(最常用) 直接把war包或部署的文件夹放到webapps下. tomcat启动后会自动监听webapps下的文件|目录,放入打包好的项目会自动部署,移除打包好的 ...

  7. VUE路径问题

    import: html文件中,通过script标签引入js文件. 而vue中,通过import xxx from xxx路径的方式导入文件,不光可以导入js文件. "xxx"指的 ...

  8. Android实战项目——家庭记账本(六)

    今天完成的主要任务如下: 1.设置页功能的布局 2.云服务器的部署 3.成功将一个本地Javaweb项目部署到阿里云 没什么特别说明的,直接上图: 首先是侧边栏功能的布局:               ...

  9. P3945 | 三体问题 (天体物理+计算几何)

    最近终于把<三体Ⅰ·地球往事>和<三体Ⅱ·黑暗森林>看完了! 为了快点认识题目中的歌者文明,已经开始第三部了! 题目背景 @FirstLight0521 出题人在这里哦~ 三体 ...

  10. [更新ing]zzy的家里蹲网课日记

    前言 精神小(ge)伙(zi)终于记起了他的博客密码...... 寒假以来,积累了巨多的好想法想要写博客,往往都是因为各种原因半途而废--在学习生活上甚至也有各种拖延的毛病:爱欠作业不早睡,不见成绩不 ...