Attack on Titan

WL大神最近迷上了一款名叫《神话时代》的游戏,这个游戏里有一种非常强力的兵种——泰坦,可以不费吹灰之力地摧毁一座座村庄。但是,泰坦有一个弱点,就是不能过河。有一次,WL大神玩了一个布满河流的地图,这个地图上坐落着N个村庄,M条河流(每条河流都可以视作一条横跨地图的直线)。WL大神一口气使用“TITANOMACHY”秘籍在一些地点共召唤了K个泰坦。现在,WL大神想知道都有哪些村庄可以被摧毁。

Input

输入数据有多组。

第一行输入一个整数T(T≤10),表示数据组数。

每组数据第一行为三个整数N(N≤50000)、K(K≤50000)、M(M≤50),分别代表村庄数、泰坦数、河流数。

接下来N行每行两个整数x、y(0≤x,y≤10^6),代表第i个村庄的坐标。

接下来K行每行两个整数x、y(0≤x,y≤10^6),代表第i个泰坦的坐标。

接下来M行每行四个整数x1、y1、x2、y2(0≤x1,y1,x2,y2≤10^6),代表第i条河流流经的两个点,保证(x1,y1)与(x2,y2)不重合,保证村庄和泰坦不会在任何一条河流上。

Output

每组数据输出N行,如果第i个村庄可以被摧毁则在第i行输出1,否则输出0。

Sample Input

1
2 1 1
0 0
2 0
2 2
1 0 1 1

Sample Output

0
1

Source

第十三届北京师范大学程序设计竞赛决赛

Author

hwq

记录每个泰坦相对每条河流的位置,然后在来判断每个村庄相对河流的位置,用状态压缩存;这里特别注意的是,用map<string,bool>,一开始,我们用map<long long,bool>,结果就WA了。。。T^T .今天好忧桑,各种WA。。。

转载请注明出处:http://blog.csdn.net/u010579068/article/details/45606905

题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=49099

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <math.h>
#include <algorithm>
using namespace std;
#define ls 2*i
#define rs 2*i+1
#define up(i,x,y) for(i=x;i<=y;i++)
#define down(i,x,y) for(i=x;i>=y;i--)
#define mem(a,x) memset(a,x,sizeof(a))
#define w(a) while(a)
#define LL long long
const double pi = acos(-1.0);
#define N 50005
#define mod 19999997
const int INF = 0x3f3f3f3f;
#define exp 1e-8
struct Point
{
LL x,y;
Point(LL x=0,LL y=0):x(x),y(y) {} //构造函数,方便代码编写
};
typedef Point Vector;//Vector只是Point的别名
//向量+向量=向量;    向量+点=点
Vector operator + (Vector A,Vector B)
{
return Vector(A.x+B.x,A.y+B.y);
}
//点-点=向量
inline Vector operator - (Point A,Point B)
{
return Vector(A.x-B.x,A.y-B.y);
}
inline bool Cross(Vector A,Vector B)
{
return A.x*B.y>B.x*A.y?true:false;
}
inline bool judge(Point A,Point B,Point C)
{
return Cross(B-A,C-A);
}
map<string,bool> vis;
Point a[N],b[N],c[55][2];
int main()
{
LL t,i,j;
LL n,m,k;
scanf("%lld",&t);
w(t--)
{
vis.clear();
scanf("%lld%lld%lld",&n,&m,&k);
up(i,0,n-1)
{
scanf("%lld%lld",&a[i].x,&a[i].y);
}
up(i,0,m-1)
{
scanf("%lld%lld",&b[i].x,&b[i].y);
}
up(i,0,k-1)
{
scanf("%lld%lld%lld%lld",&c[i][0].x,&c[i][0].y,&c[i][1].x,&c[i][1].y);
}
up(i,0,m-1)
{
string s = "";
up(j,0,k-1)
{
if(judge(c[j][0],c[j][1],b[i]))
s+="1";
else
s+="0";
}
s+="";
// printf("s1= %lld\n",s);
vis[s] = true;
}
up(i,0,n-1)
{
string s = "";
up(j,0,k-1)
{
if(judge(c[j][0],c[j][1],a[i]))
s+="1";
else
s+="0";
}
s+="";
//     printf("s2= %lld\n",s);
if(vis[s]==true)
printf("1\n");
else
printf("0\n");
}
}
return 0;
}

Attack on Titan(状态压缩)相关推荐

  1. pat 食物链(状态压缩求哈密顿回路)

    状态压缩求哈密顿回路 #include<bits/stdc++.h> using namespace std; bool dp[23][1<<21]; char s[22][2 ...

  2. POJ-1753 Flip Game 枚举 状态压缩

    刚开始做这题时总是在想应该用何种的策略来进行翻装,最后还是没有想出来--- 这题过的代码的思路是用在考虑到每个点被翻装的次数只有0次或者是1次,所以对于16个点就只有2^16中请况了.再运用位运算将状 ...

  3. 状压DP Hiho-1044 状态压缩

    状态压缩 [HihoCoder - 1044] 小Hi和小Ho在兑换到了喜欢的奖品之后,便继续起了他们的美国之行,思来想去,他们决定乘坐火车前往下一座城市--那座城市即将举行美食节! 但是不幸的是,小 ...

  4. POJ-1185 炮兵阵地 动态规划+状态压缩

    由于递推的时候依赖于三个连续层的关系.一开始想着直接三重for循环,但是这里有个问题就是上一层的0位置上包括着上上层是0和1两种可能,而后者又对当前行有约束,因此该方法不行.当然有一个办法就是增加状态 ...

  5. 树上启动式合并问题 ---- D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths [状态压缩+树上启发式合并]

    题目链接 题目大意: 一棵根为1 的树,每条边上有一个字符(a−va−va−v共22种). 一条简单路径被称为Dokhtar−kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串. 求每个子树 ...

  6. 点分治问题 ----------- HDU 5977 or 2016年大连ICPC [点分治+状态压缩]

    题目链接 题目大意: 就是给你一颗树,树上有各种权值,权值只有K种k∈[1,10]K种k\in[1,10]K种k∈[1,10],问你有多少路径覆盖了这KKK种权值,n∈[1,5e4]n\in[1,5e ...

  7. 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)

    目录 Problem A. 最短Hamilton路径 ProblemB. 蒙德里安的梦想 Problem C. Corn Fields Problem D. 小国王 Problem E. 炮兵阵地 P ...

  8. 解题报告(一)D、(CROC 2016 - Final Round C)Binary Table(矩阵 + 状态压缩 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  9. 【动态规划】状态压缩动态规划

    整理的算法模板合集: ACM模板 目录 一.集合类状态压缩动态规划 A. AcWing 91. 最短Hamilton路径 B.AcWing 524. 愤怒的小鸟 二.连通类(棋盘类)状态压缩动态规划 ...

最新文章

  1. open***配置成功分析(服务器)
  2. 2019手机浏览器排名_浏览器排行榜2019年1月浏览器市场份额排名
  3. 一篇讲清:数据采集中的安全与隐私
  4. vmware的3种网络模式
  5. 投资学习网课笔记(part2)--基金第二课
  6. 有关 php __autoload 自动加载类函数的用法
  7. (三)数据结构与算法-队列
  8. 【蓝桥杯嵌入式】【STM32】8_USART之响应上位机指令发送实时时间
  9. 小米Civi 1S获美女产品经理确认:依旧是最美小米机型
  10. 人脸识别FAR值重新认识
  11. app用html传数据,通过html调用App并传送参数倒App中
  12. 对聚集表查询的时候,未显式指定排序列的时候,默认查询结果的顺序一定是按照聚集索引顺序排序的吗...
  13. 【安装包】MySQL服务端
  14. 天气预报查询python_天气预报查询示例代码
  15. Prometheus自动发现Exporter实现方案(一看就懂)
  16. loadrunner11破解失败,已解决“ license security violation.Operation is not allowed ”问题
  17. stm32智能避障小车(三)之L298N
  18. 使用mysql打开什么文件格式_dbf是什么文件怎么打开
  19. python的debug为什么点第一行直接运行结束了_Python 代码调试工具 pdb 快速入门
  20. 全网整合营销能力训练要点

热门文章

  1. LPDDR5之Link ECC3
  2. win平台源码编译python静态库和一些坑
  3. 基于人脸识别的课堂签到管理系统【学习一】
  4. 固态硬盘将取代传统硬盘的九个理由
  5. Word2vec-Tensorflow实战
  6. Autoware的MPC源码解析(五)mpc_follower解析:calculateMPC()函数解析
  7. Linux 查看隐藏文件占用的空间大小
  8. 基于TensorFlow实现的CNN神经网络 花卉识别系统Demo
  9. 2020省赛->棋盘放麦子
  10. python机器学习之分类预测