zoukankan      html  css  js  c++  java
  • Codeforces 992C Nastya and a Wardrobe (思维)

    <题目链接>

    题目大意:

    你开始有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
    ",ans);       
    26     }
    27 }

    2019-01-17

  • 相关阅读:
    PaoptMap
    NES游戏常用汇编指令
    JS_XMLHttpRequest
    Function Evaluation
    exists的用法
    我的博客园博客开通咯(qyl)
    数据库访问类(Sql)
    Show一下自己的编程工具
    Ajax.net使用初体验
    WEB打印代码大全(NEW!!)
  • 原文地址:https://www.cnblogs.com/00isok/p/10283507.html
Copyright © 2011-2022 走看看