为了第一次写题解而去打小白月赛,本来以为可以很快AK的,但是最后卡在了最后一题,只ac了5题。前三题太水了,于是我从第四题开始给题解。

D 游戏购买!

这题主要考验大家的算法基本功,一般的爆搜会超时,因此我们枚举符合要求的商店位置,并求它到起点和终点的距离,最后相加求最小即可。

#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int n,m,x,sx,sy,ex,ey;
int g[2010][2010];
int ans=999999999;
int d1[2010][2010]={0},d2[2010][2010];
typedef pair<int,int> PII;
void bfs1(int xx,int yy){//cout<<xx<<' '<<yy<<' '<<sumx<<' '<<d<<endl;int vis[2010][2010]={0};vis[xx][yy]=1;d1[xx][yy]=0;queue<PII> q;q.push({xx,yy});while(!q.empty()){auto u=q.front();q.pop();xx=u.first;yy=u.second;for(int i=0;i<=3;i++)if(xx+dx[i]>=1&&xx+dx[i]<=n&&yy+dy[i]>=1&&yy+dy[i]<=m&&g[xx+dx[i]][yy+dy[i]]!=-1&&!vis[xx+dx[i]][yy+dy[i]]){vis[xx+dx[i]][yy+dy[i]]=1;d1[xx+dx[i]][yy+dy[i]]=d1[xx][yy]+1;q.push({xx+dx[i],yy+dy[i]});}}
}
void bfs2(int xx,int yy){//cout<<xx<<' '<<yy<<' '<<sumx<<' '<<d<<endl;
int vis[2010][2010]={0};d2[xx][yy]=0;vis[xx][yy]=1;queue<PII> q;q.push({xx,yy});while(!q.empty()){auto u=q.front();q.pop();xx=u.first;yy=u.second;for(int i=0;i<=3;i++)if(xx+dx[i]>=1&&xx+dx[i]<=n&&yy+dy[i]>=1&&yy+dy[i]<=m&&g[xx+dx[i]][yy+dy[i]]!=-1&&!vis[xx+dx[i]][yy+dy[i]]){vis[xx+dx[i]][yy+dy[i]]=1;d2[xx+dx[i]][yy+dy[i]]=d2[xx][yy]+1;q.push({xx+dx[i],yy+dy[i]});}}
}
int main(){cin>>n>>m>>x;cin>>sx>>sy>>ex>>ey;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>g[i][j];memset(d1,-1,sizeof(d1));memset(d2,-1,sizeof(d2));bfs1(sx,sy);bfs2(ex,ey);int k=0;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){if(g[i][j]>x&&d1[i][j]!=-1&&d2[i][j]!=-1){k=1;ans=min(ans,d1[i][j]+d2[i][j]);}}if(!k)puts("-1");elsecout<<ans<<endl;
}

E 寻找小竹!

这道题目主要考验的也是我们的算法基本功,只不过比较杂,看懂题目之后还是很简单的,就是一个维护大小的并查集

#include<bits/stdc++.h>
using namespace std;
const int N=5000010;
int cn[500010*2],fa[500010*2],a[500010*2];
int primes[N],cnt;
bool st[N];
void get_primes(int n)
{for (int i = 2; i <= sqrt(n); i ++ ){if (!st[i]) primes[cnt ++ ] = i;for (int j = 0; primes[j] <= n / i; j ++ ){st[primes[j] * i] = true;if (i % primes[j] == 0) break;}}
}
int gcd(int a,int b)
{return b>0?gcd(b,a%b):a;
}
int check(int x,int y){int w=gcd(a[x],a[y]);//cout<<w<<endl;int ww=0;for(int i=0;i<cnt;i++){if(w%primes[i]==0){ww++;while(w%primes[i]==0) w/=primes[i];}if(ww==2)return 1;if(w<primes[i+1])return 0;}return 0;
}
int find(int x)
{return fa[x]==x?x:fa[x]=find(fa[x]);
}
void add(int x,int y)
{x=find(x),y=find(y);if(x!=y){fa[x]=y;cn[y]+=cn[x];}
}
int main(){int n;cin>>n;get_primes(N);int ans=0;for(int i=1;i<=n;i++){cin>>a[i];fa[i]=i;cn[i]=1;}for(int i=1;i<=n-1;i++){int u,v;cin>>u>>v;if(check(u,v)){add(u,v);}}for(int i=1;i<=n;i++)if(i==fa[i])ans=max(ans,cn[i]);cout<<ans<<endl;
}

这是本周ICPC之前的倒数第二场练手局,希望我可以在本次ICPC西安站有一个好成绩

2022 牛客竞赛 月赛60 题解相关推荐

  1. 牛客竞赛14346凌波微步题解

    牛客竞赛14346凌波微步题解 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 一.题目描述 小Z的体型 ...

  2. 牛客小白月赛60(A~C)题解

    原题地址:牛客小白月赛60_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 题目A:小竹与妈妈 题意:输出(x-b)/a即可,没什么好说 代码: #include< ...

  3. 牛客小白月赛19 题解

    牛客小白月赛19 A. 「水」滔天巨浪(思维) B. 「木」迷雾森林 (数字三角形模型) C. 「土」秘法地震(二维前缀和) F. 「水」悠悠碧波 (字符串) D. 「金」初心如金 (找规律) G. ...

  4. 2022牛客多校2题解报告(同步自语雀)

    一.赛后总结 总结就是缺乏清晰的大脑,当然一切的一切归因于实力不足. 开局看K,半个小时推出DP式子,交了就WA.差错没查出来,写了暴力对拍,就去看D了.后来拍了3个小时也没出问题...可能是数据生成 ...

  5. 牛客小白月赛30题解

    A 黑白边 有n个点,m条边,每条边都分为黑边和白边,现在要选一些边,使得所有点都可以相互连通,要求用白边的条数最少. 看到所有的点都相互连通,就可以想到生成树,所以把所有的白边和黑边分类,先用黑色的 ...

  6. 牛客小白月赛27题解(部分)

    链接:https://ac.nowcoder.com/acm/contest/6874 来源:nowcoder 文章目录 A 巨木之森(树的直径) B 乐团派对(贪心) D 巅峰对决(线段树) E 使 ...

  7. 牛客小白月赛27 题解

    比赛时有点事,赛后补了一下题 A 巨木之森 题意就不复述了, 这题的核心内容就是树的直径. 观察下面的图可以发现,一个点遍历整棵树的路程就是 所有的边*2 - 从这个点出发所到的最远距离.根据树的直径 ...

  8. 牛客竞赛数学专题班生成函数I 题解

    牛客竞赛数学专题班生成函数I 题解 题单链接 背包 题目链接 题意 总共有888个物品,对于每个物品的选法都有要求,问带nnn个物品的方案数. 思路 构造生成函数,并将等比级数转为合式(∏i=0xi= ...

  9. 2022牛客暑期多校训练营3 个人题解

    title :2022牛客暑期多校训练营3 题解 date : 2022-8-16 tags : ACM,练习记录 author : Linno 2022牛客暑期多校训练营3 题解 题目链接 :htt ...

最新文章

  1. 网站收录上不去估计是这几个方面出了问题
  2. 零基础python必背代码-编程零基础应当如何开始学习 Python?
  3. 【转】webgame前台开发总结--虽然是10年的文章,但是也有参考价值
  4. PAT甲级1089 Insert or Merge:[C++题解]插入排序、归并排序
  5. python的异常处理机制
  6. 关于我对c#的一些看法
  7. windows无法启动oracleremexecservice服务_Windows下MySQL无法启动万能解决方案
  8. Connection reset原因分析和解决方案
  9. Ubuntu21.04 安装 VLC视频播放器
  10. Burp Suite详细使用教程-Intruder模块详3
  11. 拒绝搜索引擎抓取页面
  12. 关于彩虹猫病毒的分析
  13. flask基础根据知了课堂整理
  14. C语言——判断一个数是否为素数(2种方法)
  15. pycharm 常用快捷键(中英文对照表)
  16. 牛津大学教授Michael Wooldridge:AI社区40+年如何看待神经网络
  17. Unity阴阳师画符教学
  18. 注册一个域名需要多少钱_注册一个新的域名需要多少钱 注册域名费用明细
  19. Shopee打包贴单商品代发选星卓越货代服务系统
  20. 多个约束的lagrange multiplier证明.

热门文章

  1. 能帮我写一个12分钟的话剧剧本吗
  2. 如何利用Github搭建个人博客
  3. windows开启nfs_windows下挂载NFS共享目录
  4. 流浪星球 planet
  5. 交互设计定律:米勒定律(Miller’s law)
  6. book-----好书~~~~
  7. VMware --- 创建设置虚拟网卡
  8. Python输入整数n,求斐波拉契数列第n个数
  9. Springboot + vue 上传图片 显示图片
  10. 凸优化(Quasi convex optimization)与梯度下降(Grad descent)