[USACO13MAR]Farm Painting【枚举】
Pro
Luogu3079
Sol
第一次打的时候,我认为是比较接近正解的,虽然正解是枚举吧,但是我感觉优化的一样啊!嗯,只是感觉。其实不然。因为我把很多可行的方案给剪下去了,所以答案就不一样了。
正解:排序是肯定的,那么,对于排序后的每一个矩形来说,能判断另一个矩形是否在该矩形之内,可以先根据左下角点的横坐标确定一个区间,然后再在这个区间里面去枚举每一个矩形,判断一下是否可以就好。
Code
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;template <typename T> inline void read(T &x) {int c = getchar();bool f = false;for (x = 0; !isdigit(c); c = getchar()) {if (c == '-') {f = true;}}for (; isdigit(c); c = getchar()) {x = x * 10 + c - '0';}if (f) {x = -x;}
}void put(int x)
{ int num = 0; char c[15];while(x) c[++num] = (x%10)+48, x /= 10;while(num) putchar(c[num--]);putchar('\n');
}struct Ju {int x1 , y1 , x2 , y2;bool operator < (const Ju &a) const {return x1 < a.x1;}
};
Ju map[50005];
int n , top = 1 , ans , vis[50005];int jud(int x , int y) {if(map[x].x1 > map[y].x1 && map[x].y1 > map[y].y1 && map[x].x2 < map[y].x2 && map[x].y2 < map[y].y2)return 1;return 0;
}int main() {read(n);for(int i=1; i<=n; i++)read(map[i].x1) , read(map[i].y1) , read(map[i].x2) , read(map[i].y2);sort(map+1 , map+n+1);ans = n; for(int i=2; i<=n; i++) {top = 1;while(map[top].x2<=map[i].x1)top++;for(int j=top; j<i; j++)if(jud(i , j)) {ans--;break; }}put(ans);return 0;
}
[USACO13MAR]Farm Painting【枚举】相关推荐
- BZOJ1688|二进制枚举子集| 状态压缩DP
Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) ...
- JZOJ 5697. 【gdoi2018 day1】农场(farm)
Description Input Output Data Constraint Solution GDOI2018day1的第一题,那当然是签到题啦! 做一遍前缀和,枚举块的大小,暴力跳即可. Co ...
- 洛谷 P3119 [USACO15JAN]草鉴定Grass Cownoisseur (SCC缩点,SPFA最长路,枚举反边)
P3119 [USACO15JAN]草鉴定Grass Cownoisseur 题目描述 In an effort to better manage the grazing patterns of hi ...
- 2021银川Problem D. Farm(不保证正确性)
2021银川Problem D. Farm (注:由于没有数据,暂不保证正确性) 题意: 有n个点,m个有权边,有q个限制条件,每个限制条件有两个选择:选u个边,选第v个边,两个选择至少要选一个. 问 ...
- 1688: [Usaco2005 Open]Disease Manangement 疾病管理( 枚举 )
我一开始写了个状压dp..然后没有滚动就MLE了... 其实这道题直接暴力就行了... 2^15枚举每个状态, 然后检查每头牛是否能被选中, 这样是O( 2^15*1000 ), 也是和dp一样的时间 ...
- Splatter Painting
题目链接:Splatter Painting 因为距离很小. 所以,我们可以逆向操作,当前仅当这个点未被染色才去递归子节点.然后如果枚举到这个点,之前一个到过的节点还能到的距离大于当前还能到的距离就r ...
- 2019.11.2图论专题(AtCoder Splatter Painting、President and Roads、Shortest Cycle、ISlands II)
D:AtCoder Grand Contest 012 Splatter Painting 题目描述 Squid喜欢在图中为一些顶点染色(毕竟是鱿鱼 ) 现在有一张由 N 个顶点和 M 条边组成的简单 ...
- 通过枚举窗口获得窗口句柄名字并重命名窗口
创建一个对话框工程,调用回调函数EnumWindowsProc枚举所有窗口存入数组m_hwndFind中,修改ONOK函数,获得窗口名字并改名 // RenWinDlg.cpp : implement ...
- Painting the Barn 2 (最大子矩阵)
测试链接 题面: Farmer John is not good at multitasking. He gets distracted often, making it hard to comple ...
最新文章
- python源代码-python源码
- gcc build a project
- PyQt5 图形界面 - Qt Designer独立安装包,仅需30M!python图像化界面绘制工具
- qt4 与php 通讯,Qt与外部程序通信问题
- 内部设计师揭秘!王者峡谷中竟有隐藏的c++代码??!!腾讯已经炸了!!!
- leetcode76 最小覆盖子串
- 创建一个JFrame,可下拉选择显示字符串和图片
- DXUT框架剖析(6)
- 调用腾讯的API接口
- C语言段错误的有用总结
- 盘点购物分享系统,有兴趣的来看看哦
- 产品基础——认识竞品分析
- java面试 socket_java网络编程面试题
- android 自定义textview在onlayout中设置setTypeface的时候报错 requestLayout() improperly called by ...
- 完美的Python代码制作“恐龙跳一跳“小游戏【附带源码 】
- nvidia旧版驱动_鸡血驱动已发布,可新买的显卡打不上驱动?这事儿别急
- HTML5期末大作业:基于HTML+CSS+JavaScript校园文化企业网站模板【学生网页设计作业源码】
- 万兆局域网方案_万兆内网初体验
- Solidity学习(一)
- Hadoop---Google MapReduce(转)
热门文章
- Hackme.inndy - Onepunch
- [Nginx] 事件模型
- Atom 编辑器安装 linter-eslint 插件,并配置使其支持 vue 文件中的 js 格式校验
- (转)OutOfMemory时抓取heap 快照
- Java:多线程,线程池,用Executors静态工厂生成常用线程池
- ADO.NET 3.5 同SQL 2008的新的存储过程保存方式
- 执行DBMS_METADATA.get_ddl报ORA-39212的解决方法
- 用编程语言和计算机沟通
- linux 建立ftp用户
- windows 问题排查