2018.10.18 练习赛 数学专练

T1 打气球

题解:

期望递推,不关心具体位置,所以\(F[i][j]\)表示还有\(i\),\(j\)行,列未完;

\(code\):

#include<cstdio>
#include<algorithm>
#include<ctype.h>
#include<vector>
#include<queue>
#include<cstring>
#define lowbit(x) (x&-x)
#define ll long long
#define ld double
#include<map>
#include<stdlib.h>
#include<ctime>
#define mod 19260817
using namespace std; 

char buf[1<<20],*p1,*p2;
inline char gc()
{
//    return getchar();
    return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<20,stdin))==p1?0:*p1++;
} 

template<typename T>
inline void read(T &x)
{
    char tt;
    bool flag=0;
    while(!isdigit(tt=gc())&&tt!='-');
    tt=='-'?(flag=1,x=0):(x=tt-'0');
    while(isdigit(tt=gc())) x=x*10+tt-'0';
    if(flag) x=-x;
} 

int n,m;
int hang,lie;
ld f[2005][2005];
bool heng[2005],zong[2005];

ld dfs(int x,int y)
{
    if(f[x][y]!=-1) return f[x][y];
    if(!x&&!y) return f[x][y]=0.0;f[x][y]=0.0;
    f[x][y]+=(x)?(dfs(x-1,y)*1.0*x*(n-y)):0.0;
//  printf("%.2lf\n",f[x][y]);
    f[x][y]+=(y)?(dfs(x,y-1)*1.0*y*(n-x)):0.0;
    f[x][y]+=(x&&y)?(dfs(x-1,y-1)*1.0*x*y):0.0;
    return f[x][y]=(f[x][y]+n*n*1.0)/((x+y)*n-x*y);
}

int main()
{
    read(n),read(m);
    for(int i=1;i<=m;i++)
    {
        int x,y;
        read(x),read(y);
        heng[x]=zong[y]=1;
    }
    for(int i=1;i<=n;i++) hang+=!heng[i],lie+=!zong[i];
    for(int i=0;i<=n;i++)
    for(int j=0;j<=n;j++)
    f[i][j]=-1;

    printf("%.2lf",dfs(hang,lie));
    return 0;
}

T2 有趣的数列

题解:

卡特兰数+质因数分解

\(code:\)

#include<cstdio>
#include<algorithm>
#include<ctype.h>
#include<vector>
#include<queue>
#include<cstring>
#define lowbit(x) (x&-x)
#define ll long long
#define ld double
#include<map>
#include<stdlib.h>
#include<ctime>
using namespace std; 

char buf[1<<20],*p1,*p2;
inline char gc()
{
//    return getchar();
    return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<20,stdin))==p1?0:*p1++;
} 

template<typename T>
inline void read(T &x)
{
    char tt;
    bool flag=0;
    while(!isdigit(tt=gc())&&tt!='-');
    tt=='-'?(flag=1,x=0):(x=tt-'0');
    while(isdigit(tt=gc())) x=x*10+tt-'0';
    if(flag) x=-x;
} 

const int maxn=1000002;
ll pri[maxn<<1],phi[maxn<<1],s[maxn<<1],ans=1;
ll n,mod,tot;
bool book[maxn<<1];

void modify(int x,int d){
    while(1){
        if(pri[phi[x]]==0) break;
        s[phi[x]]+=d;
        x/=pri[phi[x]];
    }
}

void sent(){
    for(int i=2;i<=n<<1;i++){
        if(!book[i]) pri[++tot]=i,phi[i]=tot;
        for (int j=1;pri[j]*i<=(n<<1)&&j<=tot;j++){
            book[pri[j]*i]=1,phi[pri[j]*i]=j;
            if(i%pri[j]==0) break;
        }
    }
}

int main(){
// 1 1 5 14 42
//  freopen("interesting.in","r",stdin);
//  freopen("interesting.out","w",stdout);
    read(n),read(mod);sent();
    for (int i=n<<1;i>n;i--) modify(i,1);
    for (int i=1;i<=n;i++) modify(i,-1);
    modify(n+1,-1);
    for(int i=1;i<=tot;i++)
    while(s[i]--) ans=(ans*pri[i])%mod;

    printf("%lld",ans);
    return 0;
}

T3 距离

题解:

待补

\(code:\)

待补

原文地址:https://www.cnblogs.com/KatouKatou/p/9813947.html

时间: 2024-11-10 00:24:55

2018.10.18 练习赛 数学专练的相关文章

2018.10.15 练习赛 搜索专练

T1 乘积分解 题解: 预处理出\(n\)的约数,用\(F[i][j]\)记录从排序后的第i个因数出发,连续\(j\)个因数的乘积. 要求\(fFi][j]<=n\),且\(j<=k\) \(code\): #include<cstdio> #include<algorithm> #include<iostream> #include<ctype.h> #include<ctime> #define ll long long usin

2018.8.18练习赛

HDU 2089 不要62 数据量比较小,还是直接暴力吧. 1 #include<stdio.h> 2 int a[1000010]; 3 int F(int m); 4 int main() 5 { 6 int i,sum,n,m; 7 for(i=1;i<=1000000;i++) 8 a[i]=F(i); 9 while(scanf("%d%d",&n,&m)!=EOF) 10 { 11 if(n==0&&m==0) 12 bre

2018.10.02 练习赛

[T1 蒜头君当大厨] 题解: 显然差分约束,怕你看不出样例还疯狂暗示你= = \(code\): #include<stdio.h> #include<algorithm> #include<vector> #include<queue> #include<ctype.h> #define ll long long using namespace std; char buf[1<<20],*p1,*p2; inline char g

2018.10.18 常用API部分测试题

             常用API部分 共40道选择题,每题2.5分.31-40是多选题,多选题有错则全错,全对才满分. c String类中的getBytes()方法的作用是( c    ) a) 将整数变成字符串 b) 将字符串变成字符数组 char[ ] c) 将字符串变成字节数组byte[ ] d) 获取中字符串中字符的个数 对字符串"ababcd abcdefg"使用indexOf('a')和lastIndexOf('a'),的运行结果是( xb    ) a) 1,1 b

2018.10.18学习总结

1""" hash lib hash是一种算法 是将一个任意长的数据 根据计算 得到一个固定长度特征码 特征: 不同输入 可能会有相同的结果 几率特别小 相同的输入 必然得到相同结果 由于散列(特征)的性质 从原理来看是不可能 反解 用来 验证 两个输入的数据是否一致 使用场景 1.密码验证 123321 jahsajshajhsjahjas client 加密后结果 server 拿到加密后 2.验证数据是否被篡改 比如游戏安装包 有没有被改过 为了防止别人撞库成功 可用提

团队任务3 - 每日立会(2018 10 18)

第九组  排课软件系统  项目经理:范佳琦 我们在对项目进行测试的时候发现在支持多个班级添加课程的功能上出现了一些小问题,它只支持多个添加但不支持多个删除. 在这个问题上大家进行了激烈的讨论,每个人都提出了宝贵的具有实际意义的意见,但我对项目出现了小问题的情况对大家进行了 说明,希望大家在项目的一些小问题上要仔细认真的对待,保证项目的保质保量的高标准的完成.组员们也都很有信心. 发现大家这么有信心,我对我么们这个组又充满了信心.最后软件工程师把大家的意见深刻吸收,很快的这个小问题也得以解决 之后

【谜客帝国】第140届兰萱联想专场(2018.10.30)

 [谜客帝国]第140届兰萱联想专场(2018.10.30) 主持:瓷   计分:默沫 1.沧海桑田.抱布贸丝.金兵撼山.吹灰之力(一字)易 2.云长拒豪宅.逃出囹圄来.红杏春意闹.破门阖又开(三字)关不住 3.浅尝辄止.滑稽出演.少年之行.不大喝茶(二字)小品 4.余高阳之苗裔兮.滕王阁主今何在.董卓废之立新君.古诗有云君不见(二字)少帝 5.匈奴鲜卑并川渝.顽皮妖宝憨态掬.因何前倨后恭也.似闻主动点炮语(二字)胡巴 6.正是阿堵物.三强皆出色.一掷千金者.实乃囊羞涩(三字)不差钱 7.上书帝

it&#39;s time to change myself now (2018.10.31)

自16年从新屋熊职校毕业,入职深圳某厂从事云存储两年半了.两年半的时间很快,快的感觉一生都会飞快,两年多一直很忙,忙的几乎忘了自己是否正向改变过. 正向改变,or 积极改变,今年十一回家,与几个好友小聚,开怀畅聊,聊了过去与未来:突然觉得,在公司在岗位上,自己停止不前浑然不知,抽身之后,方被自己的状态震惊到. 从这几个方面: 工作:cs出身,从事云存储,美且名曰分布式存储,而我接触到的业务,非分布式,非传统存储,仅仅是对kv存储以lun或者说卷的管理这个层面.那么问题来了,这个层面究竟有多高的价

【谜客帝国】第139届微雨潇潇联想专场(2018.10.15)

[谜客帝国]第139届微雨潇潇联想专场(2018.10.15) 主持:瓷   计分:小白 1.本季重逢在帝国  只身东海挟春雷 乐天曲江之感怀 一段新愁染眉弯 5 今秋复来此 2.寒蛩轻唱送微凉  萧萧梧叶诉离情 白帝有语怜高洁 夜夜龙泉壁上鸣 4 此秋声也 3.人至中年心淡然  我言此季胜春潮 春愁夏恨冬烦忧 吟风作赋只伤春 4 不是悲秋 4.菊残犹有傲霜枝  立冬尚见黄叶飞 子夜歌里玉关情 竞雄洒血化碧涛 5 秋风吹不尽 5.轻寒最是可人天  貂裘换酒也堪豪 姑苏城外寒山寺 斋中结社咏海棠