Central Europe Regional Contest 2012 Problem I: The Dragon and the Knights
一个简单的题;
感觉像计算几何,其实并用不到什么计算几何的知识;
方法:
首先对每条边判断一下,看他们能够把平面分成多少份;
然后用边来对点划分集合,首先初始化为一个集合;
最后如果点的集合等于平面的份数,就说明每块都有一个士兵;
代码:
#include<cstdio>
#include<vector>
#define maxn 105
#define maxm 50005
using namespace std;
int a[maxn],b[maxn],c[maxn];
long long x[maxm],y[maxm];
int main()
{
int t,n,m;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
for(int i=; i<n; i++)
scanf("%d%d%d",&a[i],&b[i],&c[i]);
for(int i=; i<m; i++)
scanf("%lld%lld",&x[i],&y[i]);
int cnt=;
for(int i=; i<n; i++)
{
cnt++;
for(int j=; j<i; j++)
{
if(a[i]*b[j]!=a[j]*b[i])
cnt++;
}
}
vector< vector<int> >ve;
ve.resize();
for(int i=; i<m; i++)ve[].push_back(i);
for(int i=; i<n; i++)
{
int l=ve.size();
for(int j=; j<l; j++)
{
vector<int>vv[];
int si=ve[j].size();
for(int k=; k<si; k++)
{
int v=ve[j][k];
if(x[v]*a[i]+y[v]*b[i]+c[i]<)
vv[].push_back(v);
else vv[].push_back(v);
}
if(vv[].empty())swap(vv[],vv[]);
ve[j]=vv[];
if(!vv[].empty()) ve.push_back(vv[]);
}
}
if(cnt==ve.size())puts("PROTECTED");
else puts("VULNERABLE");
}
return ;
}
Central Europe Regional Contest 2012 Problem I: The Dragon and the Knights的更多相关文章
- Central Europe Regional Contest 2012 Problem c: Chemist’s vows
字符串处理的题目: 学习了一下string类的一些用法: 这个代码花的时间很长,其实可以更加优化: 代码: #include<iostream> #include<string> ...
- Central Europe Regional Contest 2012 Problem J: Conservation
题目不难,感觉像是一个拓扑排序,要用双端队列来维护: 要注意细节,不然WA到死 = =! #include<cstdio> #include<cstring> #includ ...
- Central Europe Regional Contest 2012 Problem H: Darts
http://acm.hunnu.edu.cn/online/problem_pdf/CERC2012/H.pdf HUNNU11377 题意:飞镖环有十个环,没个环从外到里对应一个得分1~10,每个 ...
- ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków
ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s Rect ...
- 2020.5.16-ICPC Central Europe Regional Contest 2019
A. ABB #include <bits/stdc++.h> using namespace std; #define PB push_back #define ZERO (1e-10) ...
- 2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17)
A. Assignment Algorithm 按题意模拟即可. #include<stdio.h> #include<iostream> #include<string ...
- 【优先级队列】Southwestern Europe Regional Contest Canvas Painting
https://vjudge.net/contest/174235#problem/D [题意] 给定n个已知size的帆布,要给这n块帆布涂上不同的颜色,规则是这样的: 每次选择一种颜色C 对于颜色 ...
- 【枚举】Southwestern Europe Regional Contest H - Sheldon Numbers
https://vjudge.net/contest/174235#problem/H [题意] 求[x,y]之间有多少个Sheldon Number Sheldon Number是二进制满足以下条件 ...
- ICPC Central Russia Regional Contest (CRRC 19)题解
题目连接:https://codeforces.com/gym/102780 寒假第二次训练赛,(某菜依旧是4个小时后咕咕咕),战况还行,个人表现极差(高级演员) A:Green tea 暴力枚举即可 ...
随机推荐
- Android(java)学习笔记164:Relativelayout相对布局案例
我们看看案例代码,自己心领神会: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout ...
- python--class test
# !usr/bin/env python3#-*- coding:utf-8 -*- 'a test class'class Student(object): def __init__(se ...
- 移动终端学习1:css3 Media Queries简介
移动终端学习之1:css3 Media Queries简介 1.简介 这篇文章写的不错,我就不重复了,来个链接:http://www.w3cplus.com/content/css3-media-qu ...
- 利用QT制作我们自己的一个计算器
有了前面的经验就比较容易创建一个 属于我们自己的计算器了. 一些简单的拖拽就可以实现了. 界面设计部分: 转到槽之后的代码部分: #include "widget.h" #incl ...
- .Net程序员快速学习安卓开发-布局和点击事件的写法
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 本系列课程 致力于老手程序员可以快速入门学习安卓开发.系统全面的从一个.Net程序员的角度一步步学习总结安 ...
- 请编程实现:产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复(百度了一下,get一种高性能算法,非递归)
网上找到一种更好的实现方式: (1)把N个数放到容器A(int数组)中. (2)从N个数中随机取出1个数放入容器B(int数组)中. (3)把容器A中最后一个数与随机抽取的数对调 或者 把容器A中最后 ...
- TPL(Task Parallel Library)多线程、并发功能
The Task Parallel Library (TPL) is a set of public types and APIs in the System.Threading and System ...
- Java 的自动装箱拆箱
Java 是面向对象的语言,其基本数据类型也就有了相对应的类,称为包装类.以下是基本数据类型对应的包装类: 基本数据类型 包装类 byte(1字节) Byte short(2字节) Short int ...
- hrbust 1328 相等的最小公倍数(数论)
Description 定义An为1,2,-,n的最小公倍数,例如,A1 = 1,A2 = 2,A3 = 6,A4 = 12,A5 = 60,A6 = 60. 请你判断对于给出的任意整数n,An是否等 ...
- dom 笔记
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...