ACdream手速赛2简单题解
来源:互联网 发布:java final class 编辑:程序博客网 时间:2024/06/03 04:30
A、Boy or Girl
题目让你统计字符串中不同的字符的数目是多少,按要求输出。
B、Walking in the Rain
ans=min(相邻两个数的最大值, a[1], a[n]);
C、Cutting Figure
仔细一想的话就会发现最多只要2个就可以使矩阵块不连通。有几个要注意的地方。1.不连通、2.sum<=2时,一直是连通的。3.输出为1的时候要每个点尝试删除并判断是否连通,若连通,则为1.
#include <iostream>#include <cstring>#include <cstdio>using namespace std;int dx[4]={0,1,0,-1};int dy[4]={1,0,-1,0};int qx[3000],qy[3000];bool map[60][60],vis[60][60];char st;int bfs(int x,int y){int h=1,t=1,cnt=0;qx[1]=x;qy[1]=y;vis[x][y]=false;while (h<=t){x=qx[h];y=qy[h];cnt++;for (int k=0;k<4;k++){x+=dx[k];y+=dy[k];if (map[x][y]&&vis[x][y]){t++;qx[t]=x;qy[t]=y;vis[x][y]=false;}x-=dx[k];y-=dy[k];}h++;}return cnt;}int main(){int n,m;while (~scanf("%d%d",&n,&m)){int sum=0;getchar();memset(map,false,sizeof(map));for (int i=1;i<=n;i++){for (int j=1;j<=m;j++){st=getchar();if (st=='#') sum++;if (st=='#') map[i][j]=true;}getchar();}if (sum<=2){printf("-1\n");continue;}memset(vis,true,sizeof(vis));bool flag=true;for (int i=1;i<=n;i++){for (int j=1;j<=m;j++) if (map[i][j]&&vis[i][j]){int cnt=bfs(i,j);if (cnt<sum) flag=false;}}if (!flag){printf("0\n");continue;}int ans=2;for (int i=1;i<=n;i++){for (int j=1;j<=m;j++)if (map[i][j]){map[i][j]=false;for (int k=0;k<4;k++)if (map[i+dx[k]][j+dy[k]]){memset(vis,true,sizeof(vis));int cnt=bfs(i+dx[k],j+dy[k]);if (cnt<sum-1){ans=1;}}map[i][j]=true;}}printf("%d\n",ans);}return 0;}
D、LCM Challenge
给出一个数N ,从1~N中任意取三个数,使得最小公倍数最大。
首先,相邻的大于1的两个数互质。
其次,我们先假设最大为N*(N-1)*(N-2),若N为奇数即为答案。N为偶数时,我们 考虑答案N*(N-1)*(N-3) ,此时,我们无法保证N 和N-3 互质,注意到N和N-3 同余 3.
所以,当N%3!=0时,即为答案。 当N%3==0时,(N-1)*(N-2)(N-3)即为答案。
#include <iostream>#include <cstring>#include <cstdio>using namespace std;int main(){long long n,ans;while (~scanf("%d",&n)){if (n<=2){ans=n;}else if (n&1){ans=n*(n-1)*(n-2);}else if (n%3) ans=n*(n-1)*(n-3);else ans=(n-1)*(n-2)*(n-3);printf("%lld\n",ans);}return 0;}
0 0
- ACdream手速赛2简单题解
- ACdream 之ACfun 题解
- ACdream区域赛指导赛之手速赛系列(4)题解
- ACdream区域赛指导赛之手速赛系列(5) 题解
- ACdream简单题目集
- ACdream 简单数据结构 专题
- ACdream 简单数论 专题
- ACdream 1213 简单数学
- acdream 1124 BFS + 简单DP
- acdream 1025 Transform 简单dp
- ACdream
- Acdream
- ACdream
- ACdream
- ACdream
- ACdream
- ACdream
- ACdream
- linux下执行mysql的sql文件
- C++学习笔记5__错误处理和调试 动态内存 副本构造器
- HDU 2476 String painter
- float、border、position属性
- jQuery Mobile(jqm)按钮的隐藏和显示,包括a标签,圆角和非圆角按钮
- ACdream手速赛2简单题解
- 走进windows编程的世界-----字符编码
- [LNAMP]Linux+Apache+Nginx+MySQL+PHP纯手动安装编译
- HTML框架以及CSS的初步知识
- JAVA基础_构造函数与函数重载
- 在Linux中安装FTP Server 配置FTP Server,JDK安装,Tomcat 安装,简易教程
- Java入门到精通——工具篇之Maven概述
- OpenGL函数-glClear
- 大学那些事(5)