题目描述

如果你之前关注过HPUOJ的话,那么你一定听说过杨八方的名字。在去年,很多同学共同见证了杨八方同学的填报志愿、来到学校、军训……或许你曾陪同杨八方一起思考过许多问题,又或者你是刚听说这个名字,这都不是问题。

光阴荏苒,杨八方不见踪影已数月之久。然而,杨八方的故事还没有结束,正值第八届河南理工大学程序设计大赛开幕之际,让我们来继续关注一波杨八方的故事吧。

事实上,杨八方最近在苦恼宿舍中与室友的关系。我们知道很多宿舍都有自己的QQ群,杨八方的宿舍也不例外,六个小伙伴都在共同创建的一个QQ群中,没事聊聊天气氛也算融洽。但是,杨八方最近突然震惊的发现一个现象,她的五个室友竟然莫名其妙地共同商量好了一个事情。事情具体是什么不重要,重要的是她并没有看到室友们面对面开过什么小会议,莫非……宿舍除了共同的QQ群外还有一个五人群没加自己?

于是杨八方开始思考,假设两个人及以上便可创建一个QQ群,那么n个人的宿舍最多可能有几个不一样的QQ群呢?

输入

第一行有一个整数T,代表有T组数据。

下面T行每行是一个整数n,代表这个宿舍有n个人。

1<=T<=100000

1<=n<=1000000000

输出

对于每一个结果可能很大,所以你只需要输出对1000000007取模的结果。

样例输入

2

2

6

样例输出

1

57


首先对数据分析,寻找规律

当n=1时s=0;n=2时s=1;s>=3时,s=2^n-(n+1);

由于题目要求要对1000000007取模,所以要用快速幂取模,最后减去(n-1)

注意:当上述方法求得s<0时,s=s+1000000007(因为这一点WA了8次QAQ与校赛银牌无缘(╥╯^╰╥))

#include<stdio.h>
#include<math.h>
typedef long long ll;
ll mod_pow(ll x,ll n,ll mod)
{
ll res=1;
while(n>0)
{
if(n&1) res=res*x%mod;
x=x*x%mod;
n>>=1;
}
return res;
}
int main()
{
int t;
ll n,s;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
if(n==1) s=0;
else if(n==2) s=1;
else
{
s=mod_pow(2,n,1000000007)-(n+1);
if(s<0) s+=1000000007;
}
printf("%lld\n",s);
}
return 0;
}

HPU1460: 杨八方的表面兄弟的更多相关文章

  1. python爬取三国演义的所有章节储存到本地文件中

    #爬取三国演义的全部章节 2 3 import urllib 4 import urllib.request 5 import urllib.parse 6 from lxml import etre ...

  2. 45.更新一下scrapy爬取工商信息爬虫代码

    这里是完整的工商信息采集代码,不过此程序需要配合代理ip软件使用.问题:1.网站对ip之前没做限制,但是采集了一段时间就被检测到设置了反爬,每个ip只能访问十多次左右就被限制访问.2.网站对请求头的检 ...

  3. 专利事务所信息Python爬取

    数据来源:http://www.acpaa.cn/ 目前事务所的信息没有做反爬限制,还是很容易拿到数据的 没有用html解析工具,直接上正则,结果就是需要处理很多乱七八糟的空格...为了能将日期顺利的 ...

  4. SQL Server中一些有用的日期sql语句

    SQL Server中一些有用的日期sql语句 1.一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 SELECT DA ...

  5. MongoDB常用数据库命令第二集

    =======================基础命令======================= mongo 进入数据库操作界面db 查看当前使用的数据库show dbs 查看当前已经被创建出来的 ...

  6. 【科创人上海行】Tinyfool郝培强 :始于不惑的微服务式创业,背负身心病痛贴地飞行

    Intro 科创人,分享技术创业者的成长与创业经验. 何谓创业?勇于面对未知.肩负重任的人生抉择. 何谓经验?沟沟坎坎.有笑有泪,各有其宝贵. 科创人的价值支点是"人",我们不以市 ...

  7. JSON(及其在ajax前后端交互的过程)小识

    一. json介绍 json是一种轻量级的数据交换格式,规则很简单: 并列的数据之间用逗号(,)分隔: 映射用冒号(:)表示: 并列数据的集合(数组)用方括号([])表示: 映射的集合(对象)用大括号 ...

  8. mongodb 速成笔记

    以下环境为mac osx + jdk 1.8 + mongodb v3.2.3 一.安装 brew安装方式是mac下最简单的方式 brew update brew install mongodb 其它 ...

  9. 用SQL SERVER取分组数据第一条:查出每个班级的成绩第一名

    create table test (id int, name ), score int, classname )); ,,'一班'); ,,'一班'); ,,'一班'); ,,'二班'); ,,'二 ...

随机推荐

  1. 派生类时使用private的目的 《私有派生》

    第一:继承方式是public的情况下: 当成员是public的时候,派生类对象可以直接调用基类的这个方法和数据, 当数据是private的时候,派生类的对象不能直接调用之,可以通过调用基类的方法来访问 ...

  2. POJ 1088 滑雪(记忆化搜索+dp)

    POJ 1088 滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 107319   Accepted: 40893 De ...

  3. JAVA支付宝和微信(APP支付,提现,退款)

    公共参数图表:       接口 需要参数 通知方式 支付宝APP支付 应用公钥,应用私钥 异步 支付宝APP提现 应用公钥,应用私钥,支付宝公钥 同步 支付宝APP退款 应用公钥,应用私钥,支付宝公 ...

  4. 每天CSS学习之border-collapse

    border-collapse是CSS2的一个属性,其作用是折叠表格(table)的边框.collapse翻译过来又折叠的意思. border-collapse有三个值: collapse:将表格和单 ...

  5. linux 在执行命令过程中,反单引号(`)这个符号代表的意义为何?

    在一串命令中,在`之内的命令将会被先执行,而且执行出来的结果将作为外部的输入信息.例如:uname -r 会显示出目前的内核版本,而我们的内核版本在/lib/modules里面,因此.你可以先执行un ...

  6. C++基础知识:STL简介

    1.标准模板库STL ― STL , 即 : Standard Template Library , 是 C++的一部分― STL是常用数据结构和算法的集合― STL的目标是标准化组件 , 提高开发效 ...

  7. python中的import,reload,以及__import__

    python中的import,reload,以及__import__ 分类: UNIX/LINUX C/C++LINUX/UNIX shellpython2013-04-24 20:294536人阅读 ...

  8. GMT5.4.2 installation

    具体安装步骤参考seisman github gmt5.4.2或是GMT中文社区上的说明:这里只是补充一些可能出现问题的解决方法: 需要将具神标注的可选包也都安装上. 将cmake中的configue ...

  9. MERGE INTO 解决大数据量 10w 更新缓慢的问题

    有个同事处理更新数据缓慢的问题,数据量超10w的量,更新速度太慢耗时较长,然后改成了 MERGE INTO 效率显著提高. 使用方法如下 MERGE INTO 表A USING 表B ON 关联条件 ...

  10. java.lang.Runnable 源码分析

    子接口:RunnableFuture<V>, RunnableScheduledFuture<V> 实现类:AsyncBoxView.ChildState, ForkJoinW ...