提答题小结:

#512. 「LibreOJ NOI Round #1」春游

退火调调参能调到61分(A了5个点),退火还是强啊。

大力猜测#2是个二分图,dfs一遍又加了10分。

https://loj.ac/submission/774590


「THUWC 2017」大葱的神力

.#1,#2应该是暴力点,我写了个瞎退火跑久点能过。

.#3做个背包还原一下方案。

. #4、#5 一看a都一样,b都是a的倍数,明示费用流

.#6 一看a只有一点点不一样,所以令\(a[i]=max(a)\),继续费用流

.#7一看a[2..n]都一样,\(a[1]=4a[2]\)\(w[1][...]\)又特别大,枚举\(a[1]\)选什么,还是费用流,跑个1分钟。

. #8、#9、#10一看就是全范围退火了,很可惜,我的退火不如按边权排序后选。

网上看到一种退火是退火一个排列,然后每次插进最优,看上去有点道理,但和我的贪心一个分。

一个多小时能搞\(10*7+4+2+1=77\),很良心。

https://loj.ac/submission/779713


「THUSC 2016」星露谷物语

我怎么知道它什么时候跳出去啊,貌似是交点。
不管了,走完一条线段再走其他的退火有35分,血赚。
之后有想法了再补吧。
https://loj.ac/submission/780259


「THUSCH 2017」宇宙广播

被精度干到自闭。

先考虑点到超平面的距离公式:
\({|\sum ai*xi+a0|\over \sqrt{\sum ai^2}}\)
\(=r\)

假设\(\sqrt{\sum ai^2}=1\)
枚举绝对值下面的正负,整理一下方程,可以得到\(ai=k*a0+b\)
代入\(\sqrt{\sum ai^2}=1\)解出\(a0\),再解出其它的\(ai\)

然后就是求切点,\(\sum ai*xi+a0\)的法向量貌似就是\((a1,a2,…,an)\),那就很简单了。

注意解方程时,x可能是0,导致出现奇怪的问题,考虑一开始把每一维的坐标随机平移一下,最后平移回去。

https://loj.ac/submission/782624(99分不卡了)


「NOI2016」旷野大计算

造计算机好题。

先讲讲我没看题解的思路,拿了73分,发现有很多人都是这个分数,这大概是不会绝对值那种构造的分数上限。

.#1:熟悉环境,

.#2:17=(1<<4)+1

.#3:

暴力就是直接调用P比较\(x\)\(-x\),能获得6分

考虑\(S(x)\)这个函数,

\(x->+∞\)时,\(s(x)=1\)

\(x=0,s(x)=0.5\)

\(x->-∞,s(x)=0\)

发现\(2*S((x<<inf))-1\)就是#3要的那个东西。

这里\(inf\)\(1000\)比较合适。

.#4:

不会,输出\(max(-x,x)\)获得6分。

套用#3加个乘法一样是6分。

.#5:

题目怎么说你就怎么做,95次可以获得10分。

.#6:

考虑对x进行二进制逼近,需要用到小于号,#3稍作变形就可以\(<\)\(=1,>时=0\)

等于的情况比较烦,所以一开始把\(x+=0.1\)

但还是需要用到乘法,次数也比较多,只有3分。

upd:这里不用乘法,比如有\(2^x*y\),直接\(y<<x\)就好了。

.#7:

先求出每一位,然后\(x~xor~y=x+y-2xy\)

还是只有3分。

.#8:

\(a/10≈a/2^x*{\lfloor {2^x\over10}\rfloor}\)

需要用到快速加,x取60精度就够了。

可以获得9分。

.#9:

考虑枚举\(i,j(i<j)\)

\(a[i]=min(a[i],a[j]),a[j]=max(a[i],a[j])\)

\(min(a[i],a[j])=a[i]+a[j]-max(a[i],a[j])\)

要用到max,还剩6分。

.#10:
同#6还是二进制逼近。

因为用到了乘法,还剩6分。

代码:https://loj.ac/submission/782817

总结:

我花了三个小时才拿这73分,分数上来说到了大众水平,但正式比赛时间肯定不够,需要加快速度。

题答后面的点可能依赖前面的点,也可能比前面的点还简单许多,比如#8、#9比前面都好拿分,#10依赖前面的小于号。

做的时候应该全部看一看,从有思路的简单的做起。

订正:

代填。。。

posted @ 2020-04-03 11:39  Cold_Chair  阅读(516)  评论(0编辑  收藏  举报