• Luogu五月月赛


    首先,到此为止,我只会(t1)(t2)

    T1:

    (color{red}{Description})

    (Alice)(Bob) 在玩游戏。

    他们有 (n) 堆石子,第(i)堆石子有(a_i)个,保证初始时 (a_i leq a_{i + 1}(1 leq i < n))。现在他们轮流对这些石子进行操作,每次操作人可以选择满足(a_i > a_{i - 1})(a_0$视为 (0))的一堆石子,并从中取走一个。谁最后不能取了谁输。(Alice) 先手,他们都使用最优策略,请判断最后谁会取得胜利。

    好了这就是个博弈论(?)的水题(qwq).

    (color{red}{Solution})

    那么事实上,这个博弈有两种均衡:

    1、自己拿最多。

    2、让对方拿最少。

    然而事实上,因为第一堆总可以拿,所以即使石头被拿成单调的(即(a_i <= a_{i-1}) )由于第(0)堆是(0),所以并不存在第二种均衡。

    那么很显然了,在第一种均衡的前提下,奇数个石头先手赢,偶数个石头后手赢。

    (color{red}{over})

    T2:

    (color{red}{Description})

    (Alice)(Bob) 生活在一个 (l imes l) 的正方形房子里,由于 (Bob) 最近沉迷隔膜,(Alice) 决定要限制 (Bob) 上网的频率。

    (Alice) 建造了 (n) 个无线信号屏蔽器,第 (i) 个位于 ((x_i, y_i)) ,屏蔽范围为 $frac{l}{n} $

    (Bob) 网瘾发作按捺不住上网的冲动,找到了你,帮他找到一个位置 ((x,y)) ,使得没有被 (Alice) 的无线信号屏蔽器覆盖.

    空间限制(512Mb),时间限制(2s)

    (color{red}{Solution})

    这个题的正解((rqy)解)是随机撒点

    那么我们考虑正确性:

    首先对于所有的圆的面积$$S_C=n imes pi imes frac{l}{n}^2=frac{ pi l^2 }{n}$$

    而正方形矩阵的面积为 $$S_Q=l^2$$

    其比值为:$$frac{pi}{n}$$

    那么我们现在就可以随机撒点了,随机生成一万多次坐标,然后判断即可。

    // luogu-judger-enable-o2
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<ctime>
    #include<cstdlib>
    using namespace std;
    #define MAXN 100
    struct circle{
        double x,y;
    }s[MAXN];
    double r;
    inline bool check(double x,double y,double x1,double y1){
        return (x1-x)*(x1-x)+(y-y1)*(y-y1)<=(r+0.000001)*(r+0.000001);
    } 
    int main(){
        double x=0,y=0,n;
        int l,tot=0;
        srand(time(0));
        cin>>n>>l;
        r=double(l)/double(n);
        for(int i=1;i<=n;i++){
            cin>>s[i].x>>s[i].y;	
        }
        for(int i=1;i<=12233;i++){
            tot=0;
            x=(double)(rand()%(l*1000))/1000;
            y=(double)(rand()%(l*1000))/1000;	
            for(int j=1;j<=n;j++){
                if(!check(s[j].x,s[j].y,x,y)){
                    tot++;	
                }
            }	
            if(tot==n){
                printf("%.3lf",x);
                cout<<" ";
                printf("%.3lf",y);
                return 0;
            }
        }
        cout<<"GG"<<endl;
    }
    
  • 相关阅读:
    intellij idea 热部署失效,需要手动编译类
    mac brew 安装包下载失败解决
    DataTemplate 之 ContentTemplate 的使用
    dataTemplate 之 ContentTemplate 的使用
    dataTemplate 的使用之listView
    dataTemplate 使用
    wpf中UserControl的几种绑定方式
    WPF教程(四)RelativeSource属性
    堆的概念
    哈夫曼(huffman)树和哈夫曼编码
  • 原文地址:https://www.cnblogs.com/pks-t/p/9062460.html
Copyright © 2020-2023  润新知