码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces 992C Nastya and a Wardrobe (思维)

时间:2019-01-17 19:38:52      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:题意   alt   class   lan   img   注意   contest   str   需要   

<题目链接>

题目大意:

你开始有X个裙子 你有K+1次增长机会 前K次会100%的增长一倍 但是增长后有50%的机会会减少一个

给你X,K(0<=X,K<=1e18), 问你最后裙子数量的期望值是多少(答案 mod 1e9+7)

解题分析:

一看到X,K的范围这么大,就应该想到是要推公式,找规律的题。本题的公式很好推,直接按照题意模拟即可。技术分享图片

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 const int mod = 1e9+7;
 7 typedef long long ll;
 8 
 9 ll pow(ll x,ll y){
10     ll ans=1;
11     while(y){
12         if(y & 1) ans = (ans*x)%mod;
13         y >>= 1;
14         x = (x*x)%mod;
15     }
16     return ans%mod;
17 }
18 
19 int main(){
20     ll x,k;
21     while(scanf("%lld%lld",&x,&k)!=EOF){
22         if(x == 0){ puts("0");continue; }
23         x %= mod;    //注意这里需要先将x%一下,因为后面乘的过程中可能会爆long long
24         ll ans = ((pow(2,k+1)*x)%mod - pow(2,k) + 1 + mod ) % mod;
25         printf("%lld\n",ans);       
26     }
27 }

 

 

2019-01-17

Codeforces 992C Nastya and a Wardrobe (思维)

标签:题意   alt   class   lan   img   注意   contest   str   需要   

原文地址:https://www.cnblogs.com/00isok/p/10283507.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!