zoukankan      html  css  js  c++  java
  • Codeforces #475 div2

    题目链接:http://codeforces.com/contest/964

    A题 答案n/2+1;

    B题 讨论三种情况

    c>b

    c==b

    c<b

    C题

    数论,逆元+快速幂,但是我一直卡在了取模这个地方。迷之wa

    AC代码:

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<string.h>
     4 #include<stdio.h>
     5 #define ll long long
     6 #define MOD 1000000009
     7 using namespace std;
     8 char s[100500];
     9 ll quick_pow(ll a,ll b,ll n,ll x){
    10     ll ans=1,base=a;
    11     ll y=n-x;
    12     while(y!=0){
    13         if(y&1){
    14             ans=(ans*base)%MOD;
    15         }
    16         base=(base*base)%MOD;
    17         y>>=1;
    18     }
    19     base=b;
    20     while(x!=0){
    21         if(x&1){
    22             ans=(ans*base)%MOD;
    23         }
    24         base=(base*base)%MOD;
    25         x>>=1;
    26     }
    27     return ans%MOD;
    28 }
    29 ll qkm(ll a,ll y){
    30     ll ans=1,base=a;
    31     while(y!=0){
    32         if(y&1){
    33             ans=(ans*base)%MOD;
    34         }
    35         base=(base*base)%MOD;
    36         y>>=1;
    37     }
    38     return ans%MOD;
    39 }
    40 int main(){
    41     ll n,a,b,k;
    42     cin>>n>>a>>b>>k;
    43     scanf("%s",s);
    44     ll ans=0;
    45     /*for(ll i=0;i<k;i++){
    46         if(s[i]=='+'){
    47             ans=(ans+quick_pow(a,b,n,i))%MOD;
    48         }else{
    49             ans=(ans-quick_pow(a,b,n,i))%MOD;
    50         }
    51     }*/
    52     for (ll i=0;i<k;i++)
    53     {
    54         if(s[i]=='+')
    55         {
    56             ans= (ans+qkm(a,n-i)*qkm(b,i)%MOD+MOD)%MOD;
    57         }
    58         if(s[i]=='-')
    59         {
    60             ans= (ans-qkm(a,n-i)*qkm(b,i)%MOD+MOD)%MOD;
    61         }
    62     }
    63     ll cir=(n+1)/k;
    64     //ll inva=qkm(a,MOD-2);
    65     ll q=(qkm(b,k)*qkm(a,k*(MOD-2)))%MOD;
    66     if(q!=1){
    67         ans=ans*(qkm(q,cir)-1)%MOD*(qkm(q-1,MOD-2))%MOD; //这里,如果我先对后面两个取模就会wa,错在第7组测试数据,迷~
    68     }else{
    69         ans=(cir*ans)%MOD;
    70     }
    71     cout<<ans<<endl;
    72     return 0;
    73 }
  • 相关阅读:
    用PHP写一个代理来解决跨域问题
    curl
    centOS 安装及部署 SVN
    vue.js 安装
    谷歌开发者 代码调试同步本地文件功能
    Liunx 下的 SNMP 及 PHP如何连接
    2017年5月11日 开放大学 理财考试记
    js window.onlload 自遐想
    纯页面跳转问题
    mysql 字列问题
  • 原文地址:https://www.cnblogs.com/ISGuXing/p/8881303.html
Copyright © 2011-2022 走看看