首页 > 其他分享 >“范式杯”2023牛客暑期多校训练营1

“范式杯”2023牛客暑期多校训练营1

时间:2023-07-20 20:44:21浏览次数:54  
标签:const int double 多校 牛客 2023 mod include define

D:Chocolate

大意:给定一个n*m的方格,上面摆放着巧克力,k和w在玩一个游戏,规定k先行,在每个回合内玩家可以吃掉坐标(x,y)内所有的巧克力(i<=x&&j<=y),在他们回合内至少吃掉一块巧克力,谁最后吃巧克力谁就输了,问赢家是谁

做法:一个很经典的博弈论,chomp游戏,这个游戏经过证明可以得到先手必赢,放在题目中只有一块巧克力的时候是后手赢

code:

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<iostream>
 5 #include<string>
 6 #include<vector>
 7 #include<stack>
 8 #include<bitset>
 9 #include<cstdlib>
10 #include<cmath>
11 #include<set>
12 #include<list>
13 #include<deque>
14 #include<map>
15 #include<queue>
16 #include <iomanip>
17 #include<ctime>
18 using namespace std;
19 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
20 #define TLE (double)clock()/CLOCKS_PER_SEC<=0.95
21 #define int long long 
22 #define double long double
23 #define endl '\n'
24 #define inf LLONG_MAX
25 #define iinf INT_MAX
26 typedef pair<int,int> PII;
27 const double PI = acos(-1.0);
28 const double eps = 1e-6;
29 const int INF = 0x3f3f3f3f;
30 const int N = 1e9;
31 int n,m;
32 signed main()
33 {
34     IOS;
35     cin>>n>>m;
36     if(n==1&&m==1)
37     {
38         cout<<"Walk Alone"<<endl;
39     }
40     else
41     {
42         cout<<"Kelin"<<endl;
43     }
44     return 0;
45 }

 

J:

 

做法:

我们的目的是在n的基础上赢得m元,那题目给定了如果赢一把的话就可以赢一元

我们可以忽略掉前面的输赢,对于本金x来讲我们考虑最多输的局数为r

在满足2^r-1<=x的前提下连续输的概率是(1/2)^r,赢的概率则相反

对于上述的r,对应都有x的例如当r=1时,x=1,r=2时,x=3,那么在[1,2],这个所处的范围,我们赢的概率是相同的,都是1/2

那么由此可以推得,我们的x在一段确定的区间中的概率相同,而我们最终所求的概率即为所有概率相乘。

 code:

 1 // 我们的目的是在n的基础上赢得m元,那题目给定了如果赢一把的话就可以赢一元
 2 // 我们可以忽略掉前面的输赢,对于本金x来讲我们考虑最多输的局数为r
 3 // 在满足2^r-1<=x的前提下连续输的概率是(1/2)^r,赢的概率则相反
 4 // 对于上述的r,对应都有x的例如当r=1时,x=1,r=2时,x=3,那么在[1,2],这个所处的范围,我们赢的概率是相同的,都是1/2
 5 // 那么由此可以推得,我们的x在一段确定的区间中的概率相同,而我们最终所求的概率即为所有概率相乘。
 6 #include<cstdio>
 7 #include<cstring>
 8 #include<algorithm>
 9 #include<iostream>
10 #include<string>
11 #include<vector>
12 #include<stack>
13 #include<bitset>
14 #include<cstdlib>
15 #include<cmath>
16 #include<set>
17 #include<list>
18 #include<deque>
19 #include<map>
20 #include<queue>
21 #include <iomanip>
22 #include<ctime>
23 using namespace std;
24 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
25 #define TLE (double)clock()/CLOCKS_PER_SEC<=0.95
26 #define int long long 
27 #define double long double
28 #define endl '\n'
29 #define inf LLONG_MAX
30 #define iinf INT_MAX
31 typedef pair<int,int> PII;
32 const double PI = acos(-1.0);
33 const double eps = 1e-6;
34 const int INF = 0x3f3f3f3f;
35 const int mod = 998244353;
36 int n,m;
37 int quick_power(int a, int k)  // 求a^k mod p
38 {
39     int res = 1 % mod;
40     while (k)
41     {
42         if (k & 1) res = res * a % mod;
43         a = a * a % mod;
44         k >>= 1;
45     }
46     return res;
47 }
48 int inv(int x)//求逆元
49 {
50     return quick_power(x,mod-2);
51 }
52 signed main()
53 {
54     IOS;
55     cin>>n>>m;
56     int ans=1;
57     for(int i=n;i<n+m;)//枚举本金
58     {
59         int r=log2(i+1);//最多输的局数
60         int ed=min(n+m,(1ll<<(r+1))-1);//终点,起点是i
61         //out<<(1ll<<(r+1))-1)<<endl;
62         int len=ed-i;//区间长度
63         int p=(1-inv(quick_power(2,r))+mod)%mod;//最多能赢的概率
64         ans=ans*quick_power(p,len);//去区间长度的概率进行相乘就是连续获胜x把的概率
65         ans=ans%mod;
66         i=ed;
67     }
68     cout<<ans<<endl;
69     return 0;
70 }

 

k:给定无向图,规定可以在任意一条边内插入一个点使得(u,v)->(u,w),(w,v),问图中最多有多少个点和1的距离不超过k

做法:

尽量避免在靠近点1出分链

同时

1.若一个点u的周围的点v不是由当前点更新而来,那么对于u-v这条边我们可以一直加点,不会对后续产生影响。

2.若一个点u周围的点v为u的前驱节点,那么对于u-v这条路径我们不能够进行加点。

3.若当前点u无后继节点且d[u]<=k,那么我们同理也可以继续加点

总而言之,我们看当前是否能够进行加点的规则为:是否对周围节点产生影响。

Code:

  1 // 尽量避免在靠近点1出分链
  2 // 同时
  3 // 1.若一个点u的周围的点v不是由当前点更新而来,那么对于u-v这条边我们可以一直加点,不会对后续产生影响。
  4 // 2.若一个点u周围的点v为u的前驱节点,那么对于u-v这条路径我们不能够进行加点。
  5 // 3.若当前点u无后继节点且d[u]<=k,那么我们同理也可以继续加点
  6 // 总而言之,我们看当前是否能够进行加点的规则为:是否对周围节点产生影响。
  7 #include<cstdio>
  8 #include<cstring>
  9 #include<algorithm>
 10 #include<iostream>
 11 #include<string>
 12 #include<vector>
 13 #include<stack>
 14 #include<bitset>
 15 #include<cstdlib>
 16 #include<cmath>
 17 #include<set>
 18 #include<list>
 19 #include<deque>
 20 #include<map>
 21 #include<queue>
 22 #include <iomanip>
 23 #include<ctime>
 24 using namespace std;
 25 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
 26 #define TLE (double)clock()/CLOCKS_PER_SEC<=0.95
 27 #define int long long 
 28 #define double long double
 29 #define endl '\n'
 30 #define inf LLONG_MAX
 31 #define iinf INT_MAX
 32 typedef pair<int,int> PII;
 33 const double PI = acos(-1.0);
 34 const double eps = 1e-6;
 35 const int INF = 0x3f3f3f3f;
 36 const int N = 4e5+10;
 37 int n,m,k;
 38 vector<int>g[N];
 39 int dis[N];
 40 bool vis[N];
 41 int pre[N];
 42 void bfs(int x)
 43 {
 44     memset(dis,0x3f,sizeof dis);
 45     queue<int>q;
 46     dis[x]=0;
 47     vis[x]=true;
 48     q.push(x);
 49     while(!q.empty())
 50     {
 51         int u=q.front();
 52         q.pop();
 53         for(int i=0;i<g[u].size();i++)
 54         {
 55             int v=g[u][i];
 56             if(!vis[v])
 57             {
 58                 vis[v]=true;
 59                 dis[v]=dis[u]+1;
 60                 pre[v]=u;
 61                 q.push(v);
 62             }
 63         }
 64     }
 65 }
 66 signed main()
 67 {
 68     IOS;
 69     cin>>n>>m>>k;
 70     for(int i=1;i<=m;i++)
 71     {
 72         int u,v;
 73         cin>>u>>v;
 74         g[u].push_back(v);
 75         g[v].push_back(u);
 76     }
 77     for(int i=1;i<=n;i++)
 78     {
 79         pre[i]=i;
 80     }
 81     bfs(1);
 82     int ans=0;
 83     for(int i=1;i<=n;i++)//满足条件的可以直接加入
 84     {
 85         if(dis[i]<=k)
 86         {
 87             ans++;
 88         }
 89     }
 90     for(int i=2;i<=n;i++)
 91     {
 92         if(g[i].size()==1)//没有后继
 93         {
 94             ans+=max(k-dis[i],0ll);
 95         }
 96         for(int j=0;j<g[i].size();j++)
 97         {
 98             int v=g[i][j];
 99             if(pre[v]!=i&&pre[i]!=v)//既不是前驱也不是后继
100             {
101                 ans+=max(k-dis[i],0ll);
102             }
103         }
104     }
105     cout<<ans<<endl;
106     return 0;
107 }

 

标签:const,int,double,多校,牛客,2023,mod,include,define
From: https://www.cnblogs.com/LQS-blog/p/17569630.html

相关文章

  • 公元2023年7月20日20:10:排队接水,均分纸牌
    今日AC二道贪心的题目①P1223排队接水-洛谷|计算机科学教育新生态(luogu.com.cn)#include<bits/stdc++.h>usingnamespacestd;intn;doublettime;structp{//题目需输出编号,所以用一结构体intb,time;}t[1005];boolcmp(px,py){、、排序比较函数retu......
  • 剑指offer_20230719
    剑指Offer24.反转链表题目说明定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。解题思路1:栈解题思路2:递归如果从后往前看的话,其实可以这样理解。如果当前处于nk,那么就另nk.next.next=nk,并且将nk.next指向空即可。处理完之后,以nk为头节点的链表其......
  • 剑指offer_20230720
    剑指Offer59-I.滑动窗口的最大值题目说明给定一个数组nums和滑动窗口的大小k,请找出所有滑动窗口里的最大值。示例:输入:nums=[1,3,-1,-3,5,3,6,7],和k=3输出:[3,3,5,5,6,7]解释:滑动窗口的位置最大值[13-1]-35367 ......
  • SketchUp Pro 2023 下载和安装教程
    SketchUpPro2023下载和安装教程下载链接123云盘:https://www.123pan.com/s/JyAKVv-NTXB.html安装教程演示操作系统:Windows11*安装前请关闭所有杀毒软件,避免报错1.解压【SketchUpPro2023.zip】 2.运行【Setup.exe】安装程序 3.点击【Next】 4.点击【Change.........
  • 喜报| 无限极入选信通院 2023 XOps“领新杯”业技融合攻坚先锋案例
    点击链接了解详情2023年7月,腾讯云CODING联合无限极参加中国信通院2023XOps“领新杯”案例评选活动,无限极从一百多家参选厂商中脱颖而出,高分荣获“业技融合攻坚先锋案例”奖项,并在7月18日信通院隆重举办的2023XOps产业创新发展论坛上正式颁奖。客户背景无限极......
  • 2023杭电多校第二场
    目录1009StringProblem比赛地址:传送门这回过了三个题,后面4个小时都在坐牢~1009StringProblem题意:给你一个字符串,让你找成对不相交的子串,每个子串仅由一个字符组成,其对于答案的贡献为子串长度-1,问你最大化贡献。思路:就是判断是否有相邻位均为同一字符串,如果则++ans......
  • 2023杭电多校第二场
    1001求个SG然后打表发现$SG=0$的点满足$t=k_1*(4*K+2)+(K+1)$#include<bits/stdc++.h>usingnamespacestd;intT,N;intmain(){cin>>T;while(T--){intN,K;cin>>K>>N;if(N<=K)cout<<&......
  • 2023年7月20日 天气:晴
       今天早上起来背了10个单词,然后出去打了两个小时的羽毛球,然后看了一小时的电视剧,再就是练了一个小时的字,然后学习了一个小时的java,最后看了一会儿构建之法,编程了一个小时的C语言。  明天打算早上起来看一小时的英语课本,然后出去玩一个小时,再看一小时的java课本,然后练......
  • 《渗透测试》Day1 WEB攻防-前后台功能点&文件下载&文件读取&文件删除&目录遍历&目录穿
     #文件安全-下载&删除-黑白盒1、下载=读取常规下载URL:http://www.xiaodi8.com/upload/123.pdf可能存在安全URL:http://www.xiaodi8.com/xx.xx?file=123.pdf利用:常规下载敏感文件(数据库配置,中间件配置,系统密匙等文件信息)2、文件删除(常出现后台中)可能存在安全问题:前台或后台......
  • 2023-7-19
    19:信息收集(昨天下午和晚上弄靶场来着,上午随便写了点)呃……这个发博客好像不太好贴点网址看看吧主动与被动信息搜集:https://zhuanlan.zhihu.com/p/567027661?utm_id=0https://www.blog.23day.site/articles/74https://blog.51cto.com/summer1/5827662也就那些,差不了太多g......