题目传送门(内部题139)


输入格式

  第一行两个整数$k,ans$,表示内存地址$A$的位数,以及答案所在的内存地址。
  接下来一行$2^k$个整数,分别表示内存地址$0...2^k-1$上的值。


输出格式

  输出一行一个正整数,表示这个程序输出结果的期望在模$10^9+7$意义下的值。


样例

样例输入1:

2 3
3 2 1 0

样例输出1:

500000005

样例输入2:

3 4
1 4 2 7 5 7 1 4

样例输出2:

125000003


数据范围与提示

样例解释:

  第一组样例的答案是$\frac{3}{2}$,第二组样例的答案是$\frac{17}{8}$。

数据范围:

  令内存内的数值的值域为$[0,v]$中的整数。
  对于$20\%$的数据,$k\leqslant 4$。
  对于$50\%$的数据,$k\leqslant 12$。
  对于另$20\%$的数据,$v=1$。
  对于$100\%$的数据,$1\leqslant k\leqslant 18,v=10^9,0\leqslant ans<2^k$。


题解

先来解释一下题意。

那个差是绝对值……

$ans$是下标

别问我怎么看出来的,我没看出来!!!

用$DeepinC$说的话就是:“用脚写题面的出题人。”

于是就有了个结论……

答案就是:

$$\frac{\sum\limits_{i=0}^{2^k-1}|v_i-v_{ans}|}{2^k}$$

时间复杂度:$\Theta(2^k)$。

期望得分:$100$分。

实际得分:$100$分。


代码时刻

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int mod=1000000007;
  4. int k,s;
  5. int v[300000];
  6. long long sum,ans;
  7. long long qpow(long long x,long long y)
  8. {
  9. long long res=1;
  10. while(y)
  11. {
  12. if(y&1)res=res*x%mod;
  13. x=x*x%mod;y>>=1;
  14. }
  15. return res;
  16. }
  17. int main()
  18. {
  19. freopen("table.in","r",stdin);
  20. freopen("table.out","w",stdout);
  21. scanf("%d%d",&k,&s);
  22. for(int i=0;i<(1<<k);i++)scanf("%d",&v[i]);
  23. for(int i=0;i<(1<<k);i++)sum=(sum+abs(v[i]-v[s]))%mod;
  24. int wzc=1<<k;
  25. int gcd=__gcd(1LL*wzc,sum);
  26. sum/=gcd;wzc/=gcd;
  27. printf("%lld",sum*qpow(wzc,mod-2)%mod);
  28. return 0;
  29. }

rp++

[CSP-S模拟测试]:打表(猜测题意+结论)的更多相关文章

  1. core的 Linq基本使用,简单模拟数据库多表的左右内连接的测试

    1:先看效果: 2:部分代码截图 3:全部代码 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 n ...

  2. csp-s模拟测试91

    csp-s模拟测试91 倒悬吃屎的一套题. $T1$认真(?)分析题意发现复杂度不能带$n$(?),计划直接维护答案,考虑操作对答案的影响,未果.突然发现可以动态开点权值线段树打部分分,后来$Tm$一 ...

  3. noi2019模拟测试赛(四十七)

    noi2019模拟测试赛(四十七) T1与运算(and) 题意: ​ 给你一个序列\(a_i\),定义\(f_i=a_1\&a_2\&\cdots\&a_i\),求这个序列的所 ...

  4. springboot2.0入门(四)----mock模拟测试+单元测试

    一.本节主要记录模拟测试.单元测试: 二.mock 测试 1.1什么是Mock? 在面向对象程序设计中,模拟对象(英语:mock object,也译作模仿对象)是以可控的方式模拟真实对象行为的假的对象 ...

  5. [CSP-S模拟测试]:Star Way To Heaven(最小生成树Prim)

    题目描述 小$w$伤心的走上了$Star\ way\ to\ heaven$. 到天堂的道路是一个笛卡尔坐标系上一个$n\times m$的长方形通道(顶点在$(0,0)$和$(n,m)$),小$w$ ...

  6. csp-s模拟测试99

    csp-s模拟测试99 九九归一直接爆炸. $T1$一眼板子. $T2$一眼语文题(语文的唯一一次$120+$是给模拟出来的可知我的语文能力). $T3$一眼普及题. ?? Hours Later 板 ...

  7. csp-s模拟测试94

    csp-s模拟测试94 一场简单题,打爆了.$T1$脑抽分解质因数准备分子分母消,想了半天发现$jb$互质直接上天,果断码了高精滚蛋.$T2$无脑手玩大样例,突然灵光一闪想到映射到前$K$大小的区间, ...

  8. csp-s模拟测试90

    csp-s模拟测试90 考场发明$Spfa$祭. $T1$按照题意模拟,然后我就发现我死了.一气之下删掉了$priority$,拍了几下发现贼jb快而且还是对的就开心地交了.$T2$的差分状态定义很棒 ...

  9. csp-s模拟测试83(集训过半)

    csp-s模拟测试83(集训过半) 一场信心赛.起初$OJ$爆了我就看见全场$A$了$T1$并且夹杂着$A$掉$T2$我就很难受. 这场比赛没有深入思考,很失败,一个多小时后就结束了我罪恶的一生. 0 ...

随机推荐

  1. 操作系统(五)CPU调度

    CPU调度是多道程序操作系统的基础.

  2. 06 Python网络爬虫requets模块高级用法

    一. 基于requests模块的cookie操作 - cookie概念: 当用户通过浏览器访问一个域名的时候,访问的web服务器会给客户端发送数据,以保持web服务器与客户端之间的状态保持,这些数据就 ...

  3. 两个实体类 复制 copy 工具类

    import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Date; public class ...

  4. Chrome去掉标签页8个框

    最终效果: 解决思路: 在标签页鼠标右击弹出的菜单项中存在“查看页面源码”一项,由此可确定chrome的标签页是由一个html页面控制的,只要修改其页面源码便能去掉8个框. 经网上查阅确定了标签页的源 ...

  5. 关于fastJson的几个问题

    1.将对象中为null的属性也给序列化出来 可以使用SerializaerFeature实现 JSON.toJSONString(gas, SerializerFeature.WriteMapNull ...

  6. CentOS MySql5.6编译安装

    生产环境中,mysql服务器上边最好什么服务都不要再安装!!! 一.准备工作: # yum -y install make gcc-c++ cmake bison-devel ncurses-deve ...

  7. 小程序UI设计(1)-布局

    工欲善其事必先利其器.下面为大家介绍一款工具软件,如何做到轻松布局. 工具简介:小程序layout设计工具,可视化方式进行小程序UI设计.通过鼠标拖拽组件方式进行UI布局.工具提供符合微信视觉统一的模 ...

  8. Java语言基础(5)

    1 if-else语句(二) 案例:Demo1~Demo4 import java.util.Scanner; public class Demo1 { //在main方法中,从控制台输入任意的一个整 ...

  9. Windows10永久激活的工具

    最近发现一个很好用的Windows10 永久激活的工具,比KMS什么的管用,而且无毒无公害.几乎支持所有的win10版本.感兴趣的朋友可以试试.之前win10没洗白的同学,也试试吧,说不定就洗白了呢. ...

  10. php页面禁用错误报告

    //禁用错误报告 error_reporting(0);#or ini_set("display_errors","Off"); //开启错误报告 ini_se ...