zoukankan      html  css  js  c++  java
  • 17西安网络赛

    这场比赛我就套模板给队友就打了个表=_=

    我们最后一共就过了三道题...

    dalao们都好强~

     C. Sum

    一开始以为是数论(最近碰到过相似的),看大家都那么快过有点懵逼...然后队友搞过了~

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=1010;
     4 int a[maxn];
     5 
     6 int main(){
     7     int t;
     8     scanf("%d",&t);
     9     while(t--){
    10         int x;
    11         scanf("%d",&x);
    12         int pos=0;
    13         while(x){
    14             a[pos++]=x%10;
    15             x/=10;
    16         }
    17         for(int i = 1; i < 233; i++){
    18             printf("1");
    19             for(int j = 1; j < pos; j++){
    20                 printf("0");
    21             }
    22         }
    23         puts("1");
    24     }
    25     return 0;
    26 }
    View Code

     B. Coin

    概率dp,简单递推,场上愣是不会做=_=

    一直在想着推公式直接求和,最后队友过了我才发现一开始的式子就列错了=_=

    dp[n][0]表示前n次是偶数次正面朝上的概率,dp[n][1]表示前n次是奇数次正面朝上的概率

    dp[n][0]=dp[n-1][0]*b+dp[n-1][1]*a;

    dp[n][1]=dp[n-1][0]*a+dp[n-1][1]*b;

    其中a=q,b=p-q;

     1 /*************************************************************************
     2     > File Name: a.cpp
     3     > Author: yijiull
     4     > Mail: 1147161372@qq.com 
     5     > Created Time: 2017年09月16日 星期六 19时13分06秒
     6  ************************************************************************/
     7 
     8 #include <bits/stdc++.h>
     9 using namespace std;
    10 #define ll long long 
    11 const int maxn=8;
    12 const int mod=1e9+7;
    13 
    14 struct Matrix{
    15     ll n;
    16     ll m[maxn][maxn];
    17     void init(ll sz){
    18         n=sz;
    19         memset(m,0,sizeof(m));
    20     }
    21     Matrix(ll sz){init(sz);}
    22     void set_I(){
    23         for(int i = 0; i < n; i++) m[i][i]=1;
    24     }
    25     Matrix operator * (const Matrix& a){
    26         Matrix ans(n);
    27         for(int i = 0; i < n; i++){
    28             for(int j = 0; j < n; j++){
    29                 for(int k = 0; k < n; k++){
    30                     ans.m[i][j]=(ans.m[i][j]+m[i][k]*a.m[k][j])%mod;
    31                 }
    32             }
    33         }
    34         return ans;
    35     }
    36 };
    37 ll quickpow(ll a,ll b,ll m){
    38     ll ans=1,temp=a%m;
    39     while(b){
    40         if(b&1) ans=ans*temp%m;
    41         b>>=1;
    42         temp=temp*temp%m;
    43     }
    44     return ans;
    45 }
    46 
    47 int main(){
    48     int t;
    49     scanf("%d",&t);
    50     while(t--){
    51         ll p,q,k;
    52         scanf("%lld%lld%lld",&p,&q,&k);
    53         ll a=q,b=p-q;
    54         Matrix base(2),ans(2);
    55         ans.set_I();
    56         base.m[0][0]=base.m[1][1]=b;
    57         base.m[0][1]=base.m[1][0]=a;
    58         ll n=k-1;
    59         while(n){
    60             if(n&1) ans=ans*base; 
    61             n>>=1;
    62             base=base*base;
    63         }
    64         ll res=(ans.m[0][0]*b%mod+ans.m[1][0]*a%mod)%mod;
    65         res=(res*quickpow(quickpow(p,k,mod),mod-2,mod))%mod;
    66         printf("%lld
    ",res);
    67     }
    68 }
    View Code

     

     E. Maximum Flow 

    打表找规律+数位dp过了......

    有空接着补~

  • 相关阅读:
    自定义查询条件存储过程
    管道分隔符Split
    开机进入boot menu和application menu,无法开机
    [SQL]SQL语言入门级教材_SQL数据操作基础(二)
    [SQL]SQL语言入门级教材_SQL功能与特性(一)
    编程规范(三)
    编程规范(二)
    类与结构的差别
    经典命名
    [SQL]SQL Server数据表的基础知识与增查删改
  • 原文地址:https://www.cnblogs.com/yijiull/p/7532217.html
Copyright © 2011-2022 走看看