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]旷野大计算的更多相关文章

  1. UOJ224 NOI2016 旷野大计算 构造、造计算机

    传送门——UOJ 传送门——Luogu 这段时间请不要找Itst聊天,Itst已经做疯了 事实证明大模拟题不可做 query 1 送分,加起来一起乘即可 I I + < - O query 2 ...

  2. [JZOJ4763] 【NOIP2016提高A组模拟9.7】旷野大计算

    题目 题目大意 给你一个数列,有很多个询问,询问一段区间内,某个数乘它的出现次数的最大值,也就是带权众数. 思考历程 第一次看到这道题,立马想到了树套树之类的二位数据结构,发现不行.(就算可以也很难打 ...

  3. noi2016旷野大作战

    玩了差不多两个小时61分 大概第9个点可以再拿5-6分 但是挺麻烦的并不想搞.. 这道题还是比较考验智商的??以及对那个特殊的ln函数的应用 感觉题目出的挺好的 看了题解 发现第4个点的确我应该想不到 ...

  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 数据范围 解法 离线莫队做法 考虑使用莫队,但由于在删数的时候难以 ...

  5. [luogu1737]旷野大计算

  6. Microsoft Azure 大计算 – 宣布收购 GreenButton

     数据以及令人不可思议的计算能力,正在改变我们日常业务的经营方式,从科学和工程到媒体和金融,各行各业的客户正逐渐意识到什么是可能的.我们对整个基因组进行分析,以研制新药物.我们构建金融和保险模型, ...

  7. sql server 大数据, 统计分组查询,数据量比较大计算每秒钟执行数据执行次数

    -- 数据量比较大的情况,统计十分钟内每秒钟执行次数 ); -- 开始时间 ); -- 结束时间 declare @num int; -- 结束时间 set @begintime = '2019-08 ...

  8. NOI2010~NOI2018选做

    [NOI2010] [NOI2010]海拔 高度只需要0/1,所以一个合法方案就是一个割,平面图求最小割. [NOI2010]航空管制 反序拓扑排序,每次取出第一类限制最大的放置,这样做答案不会更劣. ...

  9. NOI2016 高中OI生涯的最后一站

    你乘坐的航班XXX已经抵达终点站——四川绵阳. “呼——”机舱外的天空灰沉沉的,不禁有些压抑与紧张. 一出机场,就看见南山中学的牌子,黄色衣服的志愿者们,还有热情的老师们. 感觉刚才的情绪又一扫而空了 ...

随机推荐

  1. Linux入门基础(七):Linux软件管理基础

    源代码形式 绝大多数开源软件都是直接以源代码形式发布 源代码一般会被打包成tar.gz的归档压缩文件 程序源代码需要编译成为二进制形式之后才能够运行 源代码基本编译流程 : ./configure 检 ...

  2. 网页从url到网页展示到页面的流程

    心血来潮整理的 https://mubu.com/doc/oLDc49lx39

  3. 浅谈C与Java

    Java的方法调用过程 Java变量:基本类型变量.指针变量 push 压入新的栈桢 在栈桢内部创建局部基本类型变量,接收参数值 在栈桢内部创建局部指针变量,接收参数值后,该指针变量指向堆上实例 po ...

  4. 32bit 天堂服务端假设教程

    本文作者:smeli(俄罗斯人,于2009年完成该教程) PS:要比国内写的那些教程完整,详细,希望大家喜欢 VS运行库安装………………………………………..2 SQL数据库安装…………………………… ...

  5. CHAPTER 40 Science in Our Digital Age 第40章 我们数字时代的科学

    CHAPTER 40 Science in Our Digital Age 第40章 我们数字时代的科学 The next time you switch on your computer, you ...

  6. 从零开始的Python学习Episode 19——面向对象(2)

    面向对象之继承 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称 为基类或超类,新建的类称为派生类或子类. 子类会“”遗传”父类的属性,从而解决代码重用问 ...

  7. [朴孝敏][Road Trip]

    歌词来源:http://music.163.com/#/song?id=406907305 作曲 : Ryan S. Jhun/G'harah 'PK' Degeddingseze/Denzil Re ...

  8. Erlang运行时中的无锁队列及其在异步线程中的应用

    本文首先介绍 Erlang 运行时中需要使用无锁队列的场合,然后介绍无锁队列的基本原理及会遇到的问题,接下来介绍 Erlang 运行时中如何通过“线程进度”机制解决无锁队列的问题,并介绍 Erlang ...

  9. Excel VBA宏 链接服务器 上传和下载数据

    首先说明以下. 第一: 下面的 “ _" 也就是 空格下划线 在VBA中表示换行的意思:& 表示链接连个字符串的操作,注意 & 的前后是否需要空格 第二: 如果链接服务器,服 ...

  10. iframe子页面position的fixed

    前言: 首先说一说我昨天天的苦逼经历.中午吃饭时一同事跟我说,他做的项目嵌套iframe后,子页面的position设置fixed失效了. 经过反复询问,得知他用了两层iframe,再加上最外的父页面 ...