对于一个长度为k且只包含字符0和1的字符串s1s2...sk,定义其权值为:
每次操作可以选择一个下标i(1≤i≤k),将[1,i]的字符全部取反(0变1,1变0);
将字符串变为全1需要的最少操作次数。
例如字符串00110,
第一次操作选择i=5,字符串变成11001;
第二次操作选择i=4,字符串变成00111;
第三次操作选择i=2,字符串变成11111;
至少需要3次操作,字符串权值为3。
定义其重量为:该字符串的全部非空子串的权值总和。
子串是指从原字符串中,连续的选择一段字符组成的新字符串。
现在,给出一个整数n,问:全部长度为n的0−1的字符串的重量总和是多少?
每个测试文件均包含多组测试数据。
第一行输入一个整数T(1≤T≤103)代表数据组数,每组测试数据描述如下:
每行输入一个整数n(1≤n≤106)表示给定的整数。
除此之外,保证所有的n之和不超过107。
对于每一组测试数据,在一行上输出一个整数,代表重量总和。
由于答案可能很大,请将答案对(109+7)取模后输出。
输入
2
2
1
输出
8
1
说明
对于第一组测试数据,全部0−1子串有00,01,10,11
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.