585 - Triangles(简单题)
来源:互联网 发布:等距抽样的算法 编辑:程序博客网 时间:2024/06/05 00:56
很简单的题目,通过观察可以发现,每一行的奇数个都是尖头向下的三角形,偶数个都是尖头向上的。 所以我们不妨分一下类,对于尖头向上的就向下扩展,反之向上扩展。如果可以拓展就更新答案。
细节参见代码:
#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll INF = 1000000000;const int maxn = 100+5;int n,m,kase = 0;char s[maxn][2*maxn];int main() { while(~scanf("%d",&n)&&n) { getchar(); int ans = 0; for(int i=1;i<=n;i++) gets(s[i]+1); for(int i=1;i<=n;i++) { int v = 0; for(int j=i;j<=2*n-i;j++) { ++v; if(s[i][j] == '#') continue; if(v%2) { int l = j-1, r = j+1, rol = i-1, cur = 1; while(true) { if(l < rol || r > 2*n-rol) break; if(rol < 1) break; bool ok = true; for(int k=l;k<=r;k++) { if(s[rol][k] == '#') { ok = false; break; } } if(ok) cur += (r-l+1), rol--, --l , ++r ; else break; } ans = max(ans,cur); } else { int l = j-1, r = j+1, rol = i+1, cur = 1; while(true) { if(l < rol || r > 2*n-rol) break; if(rol > n) break; bool ok = true; for(int k=l;k<=r;k++) { if(s[rol][k] == '#') { ok = false; break; } } if(ok) cur += (r-l+1), rol++, --l, ++r; else break; } ans = max(ans,cur); } } } printf("Triangle #%d\n",++kase); printf("The largest triangle area is %d.\n\n",ans); } return 0;}
0 0
- 585 - Triangles(简单题)
- UVa 585 Triangles(暴力)
- uva 585 - Triangles(暴力枚举)
- UVA 585 - Triangles(枚举)
- UVa:585 Triangles
- UVA - 585 Triangles
- UVA - 585 Triangles 暴力
- UVA - 585 Triangles
- Triangles(递推)
- Triangles
- Triangles
- Triangles
- Triangles
- Triangles
- Triangles
- 第八届福建大学生程序设计竞赛-B Triangles(简单计算几何)
- USACO/Number Triangles (最简单动规)
- HOJ 13013 Triangles(map)
- iOS地图适配
- http连接池使用
- 随机切换网页背景图片的JS代码
- Android Studio-ApplicationId 与 PackageName
- Spring MVC基于注解的Controller
- 585 - Triangles(简单题)
- python中if__name=__main__说明
- zoj1067
- HTTP 的应答码,错误码,通信码
- iOS开发的一些奇巧淫技
- django 1.8 官方文档翻译:6-5-1 Django中的测试
- 开启MySQL数据库远程连接
- C++ new/delete 与 new[]/delete[] 详情
- VMware虚拟机 停电 无法启动