【BZOJ1201】[HNOI2005]数三角形(暴力)
【BZOJ1201】[HNOI2005]数三角形(暴力)
题面
题解
预处理每个点向四个方向可以拓展的最大长度,然后钦定一个点作为三角形的某个顶点,暴力枚举三角形长度,检查这样一个三角形是否存在。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define ll long long
#define MAX 1010
inline int read()
{
int x=0;bool t=false;char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=true,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return t?-x:x;
}
struct Node{int l,r,d;}p[MAX][MAX];
int n,ans;
int upl[MAX][MAX],upr[MAX][MAX],dnl[MAX][MAX],dnr[MAX][MAX];
int main()
{
n=read();
for(int i=1;i<=n;++i)
for(int j=1;j<=i;++j)
p[i][j].l=read(),p[i][j].r=read(),p[i][j].d=read();
for(int i=1;i<=n;++i)
for(int j=1;j<=i;++j)
if(p[i][j].l)upl[i][j]=upl[i-1][j]+1;
for(int i=1;i<=n;++i)
for(int j=1;j<=i;++j)
if(p[i][j].r)upr[i][j]=upr[i-1][j-1]+1;
for(int i=n;i;--i)
for(int j=1;j<=i;++j)
if(p[i+1][j].r)dnl[i][j]=dnl[i+1][j+1]+1;
for(int i=n;i;--i)
for(int j=1;j<=i;++j)
if(p[i+1][j+1].l)dnr[i][j]=dnr[i+1][j]+1;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=j;k<=n&&p[i][k].d&&k-j+1<=upl[i][j];++k)
ans+=(k-j+1)<=upr[i][k];
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=j;p[i][k].d&&k<=n&&k-j+1<=dnl[i][j];++k)
ans+=(k-j+1)<=dnr[i][k];
printf("%d\n",ans);
return 0;
}
【BZOJ1201】[HNOI2005]数三角形(暴力)的更多相关文章
- bzoj1201: [HNOI2005]数三角形
Description Input 大三角形的所有短边可以看成由(n+1)*n/2个单位三角形的边界组成.如下图的灰色三角形所示.其中第1排有1个灰色三角形,第2排有2个灰色三角形,……,第n排有n个 ...
- BZOJ1201 [HNOI2005]数三角形 大力出奇迹
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1201 题意概括 题解 n3跑过去了,大力出奇迹!简单的,不多说了. 代码 #include < ...
- bzoj1201: [HNOI2005]数三角形----递推+bitset
-by bzoj http://www.lydsy.com/JudgeOnline/problem.php?id=1201 枚举所有交点,统计每个以每个点为顶点的正三角和和以每个点为左端点的反三角 ...
- bzoj 1201[HNOI2005]数三角形 1202 [HNOI2005]狡猾的商人 暴力 权值并查集
[HNOI2005]数三角形 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 349 Solved: 234[Submit][Status][Disc ...
- 1201: [HNOI2005]数三角形 - BZOJ
Description Input 大三角形的所有短边可以看成由(n+1)*n/2个单位三角形的边界组成.如下图的灰色三角形所示.其中第1排有1个灰色三角形,第2排有2个灰色三角形,……,第n排有n个 ...
- BZOJ 1201 [HNOI2005]数三角形:枚举 + 前缀和
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1201 题意: 有一个边长为n的正三角形网格,去掉其中一些线段,问你在这幅图中有多少个三角形 ...
- 数三角形 bzoj 1201
数三角形(1s 128MB)triangle [题目描述] 小苏看到一个这样的等边三角形:该等边三角形每边的长度为n且被分成n等份,于是每条边就有n-1个等分点.而整个三角形被连接两个不同边的等分点且 ...
- bzoj3505 / P3166 [CQOI2014]数三角形
P3166 [CQOI2014]数三角形 前置知识:某两个点$(x_{1},,y_{1}),(x_{2},y_{2})\quad (x_{1}<x_{2},y_{1}<y_{2})$所连成 ...
- [CQOI 2014] 数三角形 & 机械排序臂
数三角形 bzoj 3505 要知道一个公式就是(a,b)和(x,y)两点所成线段上面的整点数是gcd(a-x,b-y)-1,通过枚举原点到map上任意一点所能成的三角形,再平移,得到要去掉的三点共线 ...
随机推荐
- C++和python的变量对比
<C++中的this和Python的self对比>基本都是针对函数而言的,从变量的角度看,也有相同之处. C++中,类中定义的变量一般叫做成员变量,或者说是成员属性,它只属于实例对象,只有 ...
- 手把手教你搭APM之Skywalking搭建指南(支持Java/C#/Node.js)
前言 什么是APM?全称:Application Performance Management 可以参考这里: 现代APM体系,基本都是参考Google的Dapper(大规模分布式系统的跟踪系统)的体 ...
- CS229笔记:线性回归
线性回归问题 首先做一些符号上的说明: \(x^{(i)}\):特征(feature) \(y^{(i)}\):目标变量(target variables) \(\mathcal{X}\):特征空间 ...
- python 算法面试题
1.题目是:有一组“+”和“-”符号,要求将“+”排到左边,“-”排到右边,写出具体的实现方法. def StringSort(data): startIndex=0 endIndex=0 count ...
- .Net Core 分布式微服务框架 - Jimu 添加 Swagger 支持
系列文章 .Net Core 分布式微服务框架介绍 - Jimu .Net Core 分布式微服务框架 - Jimu 添加 Swagger 支持 一.前言 最近有空就优化 Jimu (一个基于.Net ...
- Jq_$.getJSON( )
jQuery中的$.getJSON( )方法函数主要用来从服务器加载json编码的数据,它使用的是GET HTTP请求.使用方法如下: $.getJSON( url [, data ] [, succ ...
- git 报错 error: insufficient permission for adding an object to repository database ./objects
参照:http://stackoverflow.com/questions/1918524/error-pushing-to-github-insufficient-permission-for-ad ...
- 3.3V电源LDO
1:今天用到1颗3.3v的LDO,如图 输入输出都是3.3V,但是一个是做模拟电压,以后遇到这种情况可以这样使用. 2:二极管降压电路,1.8V转1.5V
- LintCode——Chalkboard XOR Game(黑板游戏)
黑板游戏: We are given non-negative integers nums[i] which are written on a chalkboard. Alice and Bob ta ...
- PTA (Advanced Level) 1001 A+B Format
1001 A+B Format Calculate a+b and output the sum in standard format -- that is, the digits must be s ...