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【枚举】相关推荐

  1. BZOJ1688|二进制枚举子集| 状态压缩DP

    Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) ...

  2. JZOJ 5697. 【gdoi2018 day1】农场(farm)

    Description Input Output Data Constraint Solution GDOI2018day1的第一题,那当然是签到题啦! 做一遍前缀和,枚举块的大小,暴力跳即可. Co ...

  3. 洛谷 P3119 [USACO15JAN]草鉴定Grass Cownoisseur (SCC缩点,SPFA最长路,枚举反边)

    P3119 [USACO15JAN]草鉴定Grass Cownoisseur 题目描述 In an effort to better manage the grazing patterns of hi ...

  4. 2021银川Problem D. Farm(不保证正确性)

    2021银川Problem D. Farm (注:由于没有数据,暂不保证正确性) 题意: 有n个点,m个有权边,有q个限制条件,每个限制条件有两个选择:选u个边,选第v个边,两个选择至少要选一个. 问 ...

  5. 1688: [Usaco2005 Open]Disease Manangement 疾病管理( 枚举 )

    我一开始写了个状压dp..然后没有滚动就MLE了... 其实这道题直接暴力就行了... 2^15枚举每个状态, 然后检查每头牛是否能被选中, 这样是O( 2^15*1000 ), 也是和dp一样的时间 ...

  6. Splatter Painting

    题目链接:Splatter Painting 因为距离很小. 所以,我们可以逆向操作,当前仅当这个点未被染色才去递归子节点.然后如果枚举到这个点,之前一个到过的节点还能到的距离大于当前还能到的距离就r ...

  7. 2019.11.2图论专题(AtCoder Splatter Painting、President and Roads、Shortest Cycle、ISlands II)

    D:AtCoder Grand Contest 012 Splatter Painting 题目描述 Squid喜欢在图中为一些顶点染色(毕竟是鱿鱼 ) 现在有一张由 N 个顶点和 M 条边组成的简单 ...

  8. 通过枚举窗口获得窗口句柄名字并重命名窗口

    创建一个对话框工程,调用回调函数EnumWindowsProc枚举所有窗口存入数组m_hwndFind中,修改ONOK函数,获得窗口名字并改名 // RenWinDlg.cpp : implement ...

  9. Painting the Barn 2 (最大子矩阵)

    测试链接 题面: Farmer John is not good at multitasking. He gets distracted often, making it hard to comple ...

最新文章

  1. python源代码-python源码
  2. gcc build a project
  3. PyQt5 图形界面 - Qt Designer独立安装包,仅需30M!python图像化界面绘制工具
  4. qt4 与php 通讯,Qt与外部程序通信问题
  5. 内部设计师揭秘!王者峡谷中竟有隐藏的c++代码??!!腾讯已经炸了!!!
  6. leetcode76 最小覆盖子串
  7. 创建一个JFrame,可下拉选择显示字符串和图片
  8. DXUT框架剖析(6)
  9. 调用腾讯的API接口
  10. C语言段错误的有用总结
  11. 盘点购物分享系统,有兴趣的来看看哦
  12. 产品基础——认识竞品分析
  13. java面试 socket_java网络编程面试题
  14. android 自定义textview在onlayout中设置setTypeface的时候报错 requestLayout() improperly called by ...
  15. 完美的Python代码制作“恐龙跳一跳“小游戏【附带源码 】
  16. nvidia旧版驱动_鸡血驱动已发布,可新买的显卡打不上驱动?这事儿别急
  17. HTML5期末大作业:基于HTML+CSS+JavaScript校园文化企业网站模板【学生网页设计作业源码】
  18. 万兆局域网方案_万兆内网初体验
  19. Solidity学习(一)
  20. Hadoop---Google MapReduce(转)

热门文章

  1. Hackme.inndy - Onepunch
  2. [Nginx] 事件模型
  3. Atom 编辑器安装 linter-eslint 插件,并配置使其支持 vue 文件中的 js 格式校验
  4. (转)OutOfMemory时抓取heap 快照
  5. Java:多线程,线程池,用Executors静态工厂生成常用线程池
  6. ADO.NET 3.5 同SQL 2008的新的存储过程保存方式
  7. 执行DBMS_METADATA.get_ddl报ORA-39212的解决方法
  8. 用编程语言和计算机沟通
  9. linux 建立ftp用户
  10. windows 问题排查