2017中国大学生程序设计竞赛

本文详细解析了2017年中国大学生程序设计竞赛中的四个题目:E - Evil Forest、Dogs and Cages、Rich Game 和 Knightmare。涉及内容包括比赛所需画板的计算、概率问题、羽毛球比赛策略以及棋盘游戏中马的移动规律。通过实例和算法探讨了每个问题的解决方案。
摘要由CSDN通过智能技术生成

E - Evil Forest 题目链接

题目大意:举行绘画比赛,举办n场比赛,告诉你每场比赛的人数,每场比赛至少要多准备10%的画板,计算至少准备的画板数量。

解析:水题
每场比赛至少要准备多10%的画板,就是每场比赛根据比赛人数的110% 的人数多10% (要分步操作)准备画板就可以了(至少就是只能多不能少,所以要向上取整
关于精度问题
总结:ceil能不用就不用!!!毕竟是double,容易出错
以后做题尽量按照题目意思来吧🤣😂

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
   
    int t;
    cin >> t;
    for(int tt = 1;tt <= t;tt++){
   
        double n , temp;
        cin >> n;
        int ans = 0;
        for(int i = 0;i < n;i++){
   
            cin >> temp;
            ans += ceil(temp+temp*0.1);//这里一定要分开写,不然会wa,应该是精度出了问题
        }
        printf("Case #%d: %d\n",tt,ans);
    }
    return 0;
}

Dogs and Cages 题目链接

题目大意:编号 0-n-1 的n条狗 进 编号 0-n-1 的n个笼子,问不在自己笼子的狗的期望

解析:题目相当于从n个数字全排列是所有的可能性 总方案数就是 n ! n! n!
第i只狗进对了笼子 就是除了一个数字是对的,剩下的n-1个数字全排列,就是 ( n − 1 ) ! (n-1)! n1
只有第i只狗不在正确位置上的方案数 n ! − ( n − 1 ) ! n!−(n−1)! n!(n1)!
一共有n只狗 n*(n!−(n−1)!)
不在自己笼子的狗的期望就是所有没有进入对的笼子的总数除以总共排列的种数
n ∗ ( n ! − ( n − 1 ) ! ) / n ! n*(n!−(n−1)!)/n! n(n!(n1)!/n! 化简后可得 n-1.

排列组合

#include<bits/stdc++.h>
using namespace std;
int main(){
   
    int t;
    cin >> t;
    for(int i = 1;i <= t;i++){
   
        double n;
        cin >> n;
        printf("Case #%d: %.10f\n",i,n-1);
    }
    
    
    return 0;
}

Rich Game 题目链接

题目大意:羊🐏和熊猫打羽毛球,总所周知,按照羽毛球比赛规则,至少 11 分并且领先至少 2
才能获胜一场。现在熊猫输一分,羊给熊猫x元 大型打假赛现场 熊猫赢一局,熊猫给羊y元,一共打k场。Panda不能够欠Sheep钱。问:在k局内聪明的熊猫最多可以赢多少场。

解析:panda每赢一分给y元,输一分给x元。
①当熊猫赢的时候给羊的钱比他输的时候赢的钱多时,也就是pada输一局可以赢1局以上(>1)的情况,他只要把战局拖得够长,他就可以用羊的钱赢下每一局。(通常某人先得10分他就会赢得比赛,若出现平手(例如10&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值