uva 585(字符串)
来源:互联网 发布:游戏破解编程 编辑:程序博客网 时间:2024/06/09 16:49
题意:有个倒三角形如图所示
要求最大的全部是白色小三角形组成的倒三角形的小三角形的数量。输入-表示白色,#表示黑色。
题解:暴力枚举顶点的找最大解,注意每行从0开始计小三角形,编号为偶数的只能往上面找,编号为奇数的只能往下面找。
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int N = 105;char s[N][N + N];int n, res;void Count(int x, int y, int k) {int temp = 1;if (k % 2 == 0) {int x1 = x, y1 = y, y2 = y;while (1) {x1--;y1--;y2++;int i;if (x1 < 0 || y1 < x1 || y2 >= 2 * n - x1 - 1)break;for (i = y1; i <= y2; i++)if (s[x1][i] != '-')break;if (i != y2 + 1)break;temp += y2 - y1 + 1;}}else {int x1 = x, y1 = y, y2 = y;while (1) {x1++;y1--;y2++;int i;if (x1 >= n || y1 < 0 || y2 >= 2 * n - x1 - 1)break;for (i = y1; i <= y2; i++)if (s[x1][i] != '-')break;if (i != y2 + 1)break;temp += y2 - y1 + 1;}}res = max(res, temp);}int main() {int cas = 1;while (scanf("%d", &n) == 1 && n) {for (int i = 0; i < n; i++)scanf("%s", s[i] + i);res = 0;for (int i = 0; i < n; i++)for (int j = i, k = 0; j < 2 * n - i - 1; j++, k++)if (s[i][j] == '-')Count(i, j, k);printf("Triangle #%d\nThe largest triangle area is %d.\n\n", cas++, res);}return 0;}
0 0
- uva 585(字符串)
- uva 401 Palindromes //字符串
- 刘汝佳uva 字符串专题
- uva 10534 波浪字符串
- 字符串专项:UVa 12012
- 字符串专项:UVa 10298
- 字符串专项:UVa 11475
- 字符串专项:UVa 11855
- uva 10189【字符串】
- UVA 401 Palindromes 字符串
- UVA 490 字符串旋转
- uva 1368(字符串)
- uva 10361(字符串)
- uva 10010(字符串)
- uva 409(字符串)
- uva 10878(字符串)
- uva 10115(字符串)
- uva 401(字符串)
- MySQL服务器Swap满了100%导致db很慢很卡
- freetype/config/ftheader.h: No such file or directory
- selenium_webdriver(python)元素定位详解
- 刷了OPENWRT官方原版(无界面)---》安装WEB管理界面
- 初记博客
- uva 585(字符串)
- MySQL被慢sql hang住了,用shell脚本快速清除不断增长的慢sql的办法
- 如何快速的修改参考文献
- android Service重启问题,结合AlarmManager实现定时任务
- 自定义控件-UIControl
- hive UDF 过滤字符串中的中英文标点符号
- SQL方法~获取给定时间所在周一至周日的日期范围
- 计算MySQL的内存峰值公式
- NYOJ 76 超级台阶 DP