- 博客(6)
- 收藏
- 关注
原创 [蓝桥杯2018初赛]字母阵列
原题链接 思路:总共八个方向,不需要搜索。直接每次搜的方向都是一样的,遇到边界直接退出即可。其中vis数组是打印自己搜的情况是否正确。 #include<bits/stdc++.h> using namespace std; int vis[105][105]; int dir[8][2]={0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0,-1,1}; int main() { string e[105]; for(int i=0;i<100;i++) cin&g
2020-09-26 17:45:39 432
原创 [蓝桥杯2018决赛]激光样式
题目连接 思路:dfs即可,对于每个cur都有选和不选两种状态。而选的状态必须符合相邻的没有开过。最后回溯一下即可 #include<iostream> using namespace std; int vis[35],n,res; bool fun(int x) { if(vis[x-1]==0&&vis[x+1]==0) return true; else return false; } void dfs(int cur) { if(cur==n+1){ res
2020-09-24 14:46:43 168
原创 [蓝桥杯2018决赛]最大乘积
传送门 思路:全排列搞一下,然后枚举乘的位置,再判断一下是否符合题意即可。大概几秒就能出结果 #include<iostream> #include<algorithm> #include<set> using namespace std; typedef long long ll; int a[9]={1,2,3,4,5,6,7,8,9}; set<ll>ans; void fun(int x) { ll res1=0,res2=0; for(int
2020-09-23 15:27:50 641
原创 [蓝桥杯2018决赛]整理玩具
原题链接整理玩具 思路:就是找相同的整数围起来是一个矩形问题。并且这个矩形必须是实心的。(通过错误案例即可看出)。首先矩形问题,我们可以用连通块来写,用连通块写完之后,发现有的不满足题意。例如 4 6 111111 122221 122221 111111 所以还得换种方式,其实在统计连通块的时候求每个连通块的面积。最后总和等于n * m说明符合题意,上述例子,算出来一定大于n * m。所以不符合题意。具体详见代码 #include<iostream> #include<set>
2020-09-22 15:54:49 414
原创 [蓝桥杯]兰顿蚂蚁
原题链接 思路:模拟就行 #include<iostream> #include<utility> using namespace std; const int N=1e2+5; int e[N][N]; char dir[4]={'L','U','R','D'}; int n,m,sx,sy,k; char cx; char judge(char temp,int flag) { if(flag){ int i; for(i=0;i<4;i++) if(dir[
2020-09-21 13:05:37 82
原创 [第四届蓝桥杯]连号区间数
原题链接 思路: 直接暴力,枚举区间O(n^2),判断区间是否符合连号区间(排个序再判断时间复杂度绝对很大了) 枚举区间,并且随时更新区间的最大值和最小值。如果他是连号区间,一定满足maxx-minx+1==j-i+1。用O(1)直接判断是否满足条件。 #include<iostream> #include<algorithm> using namespace std; const int N=5e4+5; int a[N]; int main() { int n;
2020-09-21 11:38:15 89
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人