2017蓝桥杯省赛(方格分割+)
来源:互联网 发布:蜂窝移动数据开关失效 编辑:程序博客网 时间:2024/05/30 21:58
方格分割
/*仔细观察样例数据可以发现,要满足题目所需要求,只需要剪切的线关于图案的中点中心对称。那么我们可以将格子格子之间接壤的看作边,边与边相交的看作点。则从(3,3)点出发,找一条边到达图案的外圈,不过值得注意的是,从(3,3)出发的是看错两个人出发,两个人的线路一直是对称。所以dfs中标记的时候要一步标记两个。最后的结果要除以4,因为题目中说要旋转对称的是同一种。*/#include<bits/stdc++.h>using namespace std;int visited[10][10];int ans=0;int dir[4][2]={0,1,1,0,0,-1,-1,0};void dfs(int x,int y){ if(x==0||y==0||x==6||y==6) { ans++; return; } for(int i=0;i<4;i++) { int nx=x+dir[i][0]; int ny=y+dir[i][1]; if(visited[nx][ny]) continue; visited[nx][ny]=1; visited[6-nx][6-ny]=1; dfs(nx,ny); visited[nx][ny]=0; visited[6-nx][6-ny]=0; }}int main(){ memset(visited,0,sizeof visited); visited[3][3]=1; dfs(3,3); printf("%d %d\n",ans,ans/4);}
分巧克力(二分,比赛的时候我是暴力的,,)
#include<algorithm>#include<string.h>#include<iostream>#include<stdio.h>#include<string.h>#include<vector>using namespace std;typedef long long ll;ll hi[100010];ll wi[100010];int n;ll k;bool isok(ll ans){ ll sum=0; for(int i=0;i<n;i++) { sum+=(hi[i]/ans)*(wi[i]/ans); if(sum>=k) return true; } return false;}int main(){ scanf("%d%lld",&n,&k); for(int i=0;i<n;i++) scanf("%lld%lld",&hi[i],&wi[i]); ll l=1,r=100000,ans; while(l<=r) { ans=(l+r)/2; if(isok(ans)) l=ans+1; else r=ans-1; } l++; while(l--) { if(isok(l)) break; } printf("%lld\n",l); return 0;}
0 0
- 2017蓝桥杯省赛(方格分割+)
- 蓝桥杯 方格分割(dfs)
- 方格分割
- 方格分割(DFS搜索算法)
- 蓝桥杯 方格分割 第八届
- 第八届蓝桥杯方格分割深搜
- 第八届蓝桥杯【省赛试题4】方格分割
- 方格分割 DFS+ 对称性 + 用点代表格子
- 取方格(1)
- 摆方格(数学)
- 2016蓝桥杯省赛 方格填数
- 机器人走方格二---(有障碍的方格)
- 骨牌铺方格(2046)
- 华为OJ(走方格)
- 方格填数 (搜索)
- 机器人走方格(dp)
- 骨牌铺方格(HDU2046)
- 方格填数(蓝桥杯)
- 登录mysql数据库出现 : ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) ER
- 统计学习方法(2)——感知机原始形式、对偶形式及Python实现
- ( Sicily1342) 开心的金明(week 8)
- poj 1026 Cipher(置换群)
- javaio文件操作
- 2017蓝桥杯省赛(方格分割+)
- yolo v2
- 180. Consecutive Numbers
- 30 min about LINQ
- (转)Android PopupWindow的使用技巧
- 跨域的三种实现方式
- qt使用
- 不要通过Application Object或者其他全局静态变量来存放数据
- 括号配对问题