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

清北考前刷题da7下午好

时间:2017-11-04 00:00:04      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:ima   mes   左右   区间   string   inline   logs   ++   efi   

三向城

技术分享

技术分享

 

/*
原图一定是一棵完全二叉树。
根节点是x,左节点是x*2,右节点是x*2+1
转化为二进制往左右走就很明显了。
*/ 
#include<iostream>
#include<cstdio>
#include<cstring>

#define ll long long

using namespace std;
int T,x,y,k,ans,pos;

inline int read()
{
    int x=0,f=1;char c=getchar();
    while(c>9||c<0){if(c==-)f=-1;c=getchar();}
    while(c>=0&&c<=9){x=x*10+c-0;c=getchar();}
    return x*f;
}

int main()
{
    freopen("city.in","r",stdin);
    freopen("city.out","w",stdout);
    T=read();
    while(T--)
    {
        x=read();y=read();ans=0;
        if(x==y){printf("1\n");continue;}
        while(x!=y)
        {
            if(x>y) x/=2,ans++;
            if(y>x) y/=2,ans++;
        }
        printf("%d\n",ans);
     }
     return 0;
}

 

 

灵魂画师

技术分享

技术分享

技术分享

 

 

/*
dp[i][j][k]表示第i个元素经过j次染色变为k颜色的概率。
考虑一段区间,每个元素只有选和不选两个状态,所以概率都为1/2.
转移的时候枚举下一个染不染和染成什么颜色。染成下一种颜色的概率是1/c。
可以看出第一维是没有用的,因为被覆盖次数相同的格子概率是相同的。
*/
#include<iostream>
#include<cstdio>
#include<cstring>

#define N 107

using namespace std;
int n,m,tot,c,k,t,l,r,cnt[N];
double dp[N][N],ans;

inline int read()
{
    int x=0,f=1;char c=getchar();
    while(c>9||c<0){if(c==-)f=-1;c=getchar();}
    while(c>=0&&c<=9){x=x*10+c-0;c=getchar();}
    return x*f;
}

void DP()
{
    dp[0][1]=1;
    for(int i=0;i<tot;i++)
    {
        for(int j=0;j<c;j++) 
        {
            dp[i+1][j]+=dp[i][j]/2;
            for(int x=0;x<c;x++) dp[i+1][(j*x)%c]+=dp[i][j]/(2*c);
        }
    }
    
    for(int i=1;i<=n;i++)
      for(int j=0;j<c;j++)
        ans+=dp[cnt[i]][j]*j;
    printf("%.3lf\n",ans);
}

int main()
{
    freopen("paint.in","r",stdin);
    freopen("paint.out","w",stdout);
    n=read();c=read();k=read();
    for(int i=1;i<=k;i++)
    {
        l=read();r=read();
        for(int j=l;j<=r;j++)
            cnt[j]++,tot=max(tot,cnt[j]);
    }DP();
    return 0;
}

 

 

香子兰

技术分享

技术分享

技术分享

 

清北考前刷题da7下午好

标签:ima   mes   左右   区间   string   inline   logs   ++   efi   

原文地址:http://www.cnblogs.com/L-Memory/p/7780753.html

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