[NOI2016]旷野大计算
Subtask0
造计算机神题。给一个忠告:珍爱生命,远离旷野大计算......
代码在这里:戳我
Subtask1
给定\(a,b\);求\(-2a-2b\)。
熟悉操作环境:\([-(a+b)]<<1\),共\(6\)次操作。
Subtask2
给定\(a\);求\(\frac{1}{1+e^{17a}}\)。
熟悉关键函数及操作:\(s(-((a<<4)+a))\),共\(6\)次操作。
Subtask3
给定\(a\),求\(fu(a)\),其中\(fu(a) = \{-1,0,1\}\)。
可以发现\(s(x)\)在\(x\to \infty\)时\(\to 1\),在\(x\to -\infty\)时\(\to 0\)。
所以通过放缩就能够实现正、\(0\)、负数的区分了,即\([s(a<<500)-0.5]<<1\),共\(6\)次操作。
Subtask4
给定\(a\);求\(|a|\)。
最为关键的一档部分分。
首先\(s'(x)=\frac{e^{-x}}{(1+e^{-x})^2}\),\(s'(0)=\frac{1}{4}\),所以当\(x\to 0\),则\(s(x)\to \frac{x}{4}+\frac{1}{2}\)。
所以考虑用\(x\to 0\)时的\(s(x)\)构造我们需要的值。
考虑\(INFs(INFx)=[\{INF,x>0\},\{0,x<0\}]\)。
那么\(s(\frac{x}{INF}+INFs(INFx))=[\{1,x>0\},\{\frac{x}{4INF}+\frac{1}{2},x<0\}]\),然后对着构造即可。
至于\(0\)的尴尬处境,通过加\(eps\)解决,令\(b=a+eps\)。
操作为:\(-8INF([s(\frac{b}{INF}+4INFs(INFb))]-\frac{1}{2})+b+4INFs(INFb)\),共\(14\)次操作。
这个\(Subtask\)的构造思想之后要反复用到。
Subtask5
给定二进制数\(a\),把它翻译为十进制数。
开始写\(for\):对后\(31\)位模拟即可(第\(32\)位直接取),共\(95\)次操作。
Subtask6
给定十进制数\(a\),把它翻译为二进制数。
核心思想:从高位到低位,把当前数\(-2^t\),若\(\ge 0\)则为\(1\),否则为\(0\)。
与\(Subtask3\)蜜汁相像啊。先写出一个大概:\(s((x-2^t+eps)<<500)>>500\)。
然后来卡常,不难发现每次都左移十分浪费,所以预先左移一次即可。
再者第\(0\)位貌似不需要该操作,直接取当前结果即可,通过卡常共\(190\)次操作。
Subtask7
给定两个数\(a,b\);求\(a\ xor\ b\)。
先转为二进制数操作,最后再转回十进制,那么只需要考虑某一位的答案。
考虑支持函数:\(f(x=\{0,1,2\})=[\{0,x=0,2\}\{1,x=1\}]\),然后用\(f(x)\)求答案即可。
不难想到\(f(x)=x-s((x-1.5)<<500)<<1\)。一共\(603\)次操作。
Subtask8
给定\(a\);求\(\frac{a}{10}\)。
考虑求\(s'(x_0)=\frac{1}{10}\),然后当\(x\to x_0\),\(s(x)=s(x_0)+\frac{1}{10}(x-x_0)\)。
手解可得:\(x_0=-ln(\frac{3+\sqrt{5}}{2})\),先各凭本事把\(x_0\)和\(s(x_0)\)的高精小数搞出来再说。
然后就比较简单了,\(s(\frac{x}{INF}+x_0)=s(x_0)+\frac{x}{10INF}\)。
所以操作为:\([s(x>>500+x_0)-s(x_0)]<<500\),共\(7\)次操作。
Subtask9
给定\(a_{1,2...,32}\);把\(a\)数组排好序后输出来。
冒泡排序,每次操作:\(t=a_i+a_{i+1},a_{i+1}=a_i+max(0,a_i-a_{i+1}),a_i=t-a_{i+1}\)。
唯一的问题在于实现\(f(t)=max(0,t)\),应该已经轻车熟路了吧。
一种可行构造:\(f(t)=x-4INF(s(\frac{t}{INF}+2INFs(INFt))-\frac{1}{2})+2INFs(INFt)\)。
共\(2192\)次操作。
Subtask10
给定\(a,b,c\);实现\(a\times b \% c\)。
分两步,先算\(a\times b=t\),再算\(t\% c\)。
第一步龟速乘,先把\(b\)转化为二进制数,设第\(i\)位为\(b_i\)。
我们需要一个函数\(f(x,t=\{0,1\})=[\{0,t=0\},\{x,t=1\}]\),做出\(f(x,t)\)事情就简单了。
注意到\(s(-\infty)\to 0\),所以\(f(x,t)\)大概形式为\(s(x+INF(t-1))\),但这样得不到\(x\)的值。
再次利用\(Sub4\)、\(Sub8\)的那种方法即可。
最终设计出来\(f(x,t)=2INF(-t+s(\frac{x}{INF}+INF(t-1))<<1)\)。
然后来实现取模,核心思想类似\(Sub6\),需要函数\(g(x)=[\{1,x\ge 0\},\{0,x<0\}]\)。
由于\(x\)是整数域\(Z\)下的,所以这个就比较简单了,\(g(x)=s(INF(x+0.5))\)。一共\(1493\)步。
[NOI2016]旷野大计算的更多相关文章
- UOJ224 NOI2016 旷野大计算 构造、造计算机
		
传送门——UOJ 传送门——Luogu 这段时间请不要找Itst聊天,Itst已经做疯了 事实证明大模拟题不可做 query 1 送分,加起来一起乘即可 I I + < - O query 2 ...
 - [JZOJ4763] 【NOIP2016提高A组模拟9.7】旷野大计算
		
题目 题目大意 给你一个数列,有很多个询问,询问一段区间内,某个数乘它的出现次数的最大值,也就是带权众数. 思考历程 第一次看到这道题,立马想到了树套树之类的二位数据结构,发现不行.(就算可以也很难打 ...
 - noi2016旷野大作战
		
玩了差不多两个小时61分 大概第9个点可以再拿5-6分 但是挺麻烦的并不想搞.. 这道题还是比较考验智商的??以及对那个特殊的ln函数的应用 感觉题目出的挺好的 看了题解 发现第4个点的确我应该想不到 ...
 - 【JZOJ4763】【NOIP2016提高A组模拟9.7】旷野大计算
		
题目描述 输入 输出 样例输入 5 5 9 8 7 8 9 1 2 3 4 4 4 1 4 2 4 样例输出 9 8 8 16 16 数据范围 解法 离线莫队做法 考虑使用莫队,但由于在删数的时候难以 ...
 - [luogu1737]旷野大计算
 - Microsoft Azure 大计算 – 宣布收购 GreenButton
		
 数据以及令人不可思议的计算能力,正在改变我们日常业务的经营方式,从科学和工程到媒体和金融,各行各业的客户正逐渐意识到什么是可能的.我们对整个基因组进行分析,以研制新药物.我们构建金融和保险模型, ...
 - sql server 大数据, 统计分组查询,数据量比较大计算每秒钟执行数据执行次数
		
-- 数据量比较大的情况,统计十分钟内每秒钟执行次数 ); -- 开始时间 ); -- 结束时间 declare @num int; -- 结束时间 set @begintime = '2019-08 ...
 - NOI2010~NOI2018选做
		
[NOI2010] [NOI2010]海拔 高度只需要0/1,所以一个合法方案就是一个割,平面图求最小割. [NOI2010]航空管制 反序拓扑排序,每次取出第一类限制最大的放置,这样做答案不会更劣. ...
 - NOI2016 高中OI生涯的最后一站
		
你乘坐的航班XXX已经抵达终点站——四川绵阳. “呼——”机舱外的天空灰沉沉的,不禁有些压抑与紧张. 一出机场,就看见南山中学的牌子,黄色衣服的志愿者们,还有热情的老师们. 感觉刚才的情绪又一扫而空了 ...
 
随机推荐
- Android Studio 导入别人项目时候遇见的问题“Gradle DSL method not found: 'compile()'”
			
Gradle DSL method not found: 'compile() 遇见这个问题截图: 解决: 在项目的根目录的build.gradle文件中是不是用了compile方法 如果有的话,剪切 ...
 - 13-调试Dockerfile
			
包括 Dockerfile 在内的任何脚本和程序都会出错.有错并不可怕,但必须有办法排查,所以本节讨论如何 debug Dockerfile. 先回顾一下通过 Dockerfile 构建镜像的过程: ...
 - JUC——线程同步辅助工具类(Semaphore,CountDownLatch,CyclicBarrier)
			
锁的机制从整体的运行转态来讲核心就是:阻塞,解除阻塞,但是如果仅仅是这点功能,那么JUC并不能称为一个优秀的线程开发框架,然而是因为在juc里面提供了大量方便的同步工具辅助类. Semaphore信号 ...
 - OpenGL(1)-环境搭建
			
写在前面 工作几年,开始沉心做技术,对自己的知识进行梳理. OpenGL是由khronos组织制定并维护的规范,并不是API. OpenGL在3.2之前采用的是立即渲染模式(固定渲染管线),3.2之后 ...
 - RSA详解
			
RSA RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作.RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥 ...
 - lscpu命令详解
			
基础命令学习目录首页 一.lscpu输出 使用lscpu查看的结果如下图,这里会显示很多信息,如下: 使用lscpu -p会详细的numa信息,如下: [root@localhost ~]# lscp ...
 - Daily Scrum (2015/10/31)
			
这几天我们组的进度有点慢,剩下这一周的我们必须要加油认真对待. 周末这两天我们是这样安排的: 成员 今日任务 时间 明日任务 符美潇 数据库部分代码的编写 1h 每周小组例会 潘礼鹏 团队博客作业 ...
 - 20162314 《Program Design & Data Structures》Learning Summary Of The Ninth Week
			
20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Ninth Week ...
 - Virtualbox+Ubuntu安装,VERR_VMX_MSR_ALL_VMX_DISABLED解决
			
学习链接:基于VirtualBox虚拟机安装Ubuntu图文教程--娄老师 启动虚拟机遇到的问题:BIOS中VT-x在所有CPU模式下被禁用(VERR_VMX_MSR_ALL_VMX_DISABLED ...
 - Alpha版本冲刺(四)
			
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:丹丹 组员7:何家伟 组员8:政演 组员9:鸿杰 组员10:刘一好 组员:何宇恒 展示组内最新 ...