uva1606 Amphiphilic Carbon Molecules
来源:互联网 发布:淘宝联盟验证失败 编辑:程序博客网 时间:2024/05/16 08:08
题目的主要思想在于依次选定一个节点,然后再选定剩下的另外一个节点,然后判断以这两个节点确定的直线作为边界,相应的黑色节点的个数以及白色节点的个数的最大值,这里也使用了一个很重要的方法,将黑色节点的位置进行中心对称,这样就将求解白色节点以及黑色节点的个数统一起来了,直接求出节点数然后取最大值就行了,具体实现见如下代码:
#include<iostream>#include<vector>#include<string>#include<set>#include<stack>#include<queue>#include<map>#include<algorithm>#include<cmath>#include<iomanip>#include<cstring>#include<sstream>#include<cstdio>#include<deque>#include<functional>using namespace std;const int maxn = 1005;int N;typedef struct node{double x, y;double rad;}node;bool compare(const node a,const node b){return a.rad < b.rad;}int x[maxn], y[maxn], color[maxn], ans;bool isLeft(node a,node b){//由a旋转到breturn a.x*b.y - a.y*b.x >= 0;}void deal(){for (int i = 0; i < N; i++){vector<node> v;for (int j = 0; j < N; j++){if (j != i){node temp;temp.x = x[j] - x[i];temp.y = y[j] - y[i];if (color[j]){temp.x = -temp.x, temp.y = -temp.y;}temp.rad = atan2(temp.y, temp.x);v.push_back(temp);}}sort(v.begin(), v.end(), compare);int L = 0, R = 0;int amount = 2, up = v.size();while (L < up){if (L == R){R = (R + 1) % up;amount++;}while (R != L&&isLeft(v[L], v[R])){R = (R + 1) % up;amount++;}L++;amount--;ans = max(ans, amount);}}}int main(){ while (cin >> N){if (N == 0) break;for (int i = 0; i < N; i++){cin >> x[i] >> y[i] >> color[i];}ans = -1;deal();cout << ans << endl;}return 0;}
阅读全文
0 0
- uva1606 Amphiphilic Carbon Molecules
- UVA1606 Amphiphilic Carbon Molecules
- uva1606 Amphiphilic Carbon Molecules
- UVa UVA1606 Amphiphilic Carbon Molecules
- [极角排序 扫描法]UVa1606 - Amphiphilic Carbon Molecules
- Amphiphilic Carbon Molecules
- 1606 - Amphiphilic Carbon Molecules
- POJ2280 Amphiphilic Carbon Molecules
- Amphiphilic Carbon Molecules UVA
- Uva1606 Amphiphilic Carbon Molecules【例题8-6】【极角扫描法】【不懂!】
- 例题8-6 两亲性分子(Amphiphilic Carbon Molecules, ACM/ICPC Shanghai 2004, UVa1606)
- Shanghai 2004 ( UVALive 3259) Amphiphilic Carbon Molecules
- POJ 2280 && HDU 1661 Amphiphilic Carbon Molecules
- 【Jason's_ACM_解题报告】Amphiphilic Carbon Molecules
- 两亲性分子(Amphiphilic Carbon Molecules,Uva 1606)
- UVA 1606(p238)----Amphiphilic Carbon Molecules
- UVa OJ 1606 - Amphiphilic Carbon Molecules
- POJ 2280 Amphiphilic Carbon Molecules 极角排序 + 扫描线
- 动态规划(状态压缩)--铺地板
- iOS 获取系统声音
- datstage处理文本文件中存在多余换行符的数据
- ant table 添加双击展开扩展显示信息
- Java继承
- uva1606 Amphiphilic Carbon Molecules
- getOSType
- DP—最长下降子序列(代码)
- java设计模式_单例模式_学习笔记
- 数据库(oracle的安全性和完整性控制)
- eclipse 部署maven到tomcat
- 【css】css margin,padding 缩略写法
- java一个类不能实现同一泛型接口的两种变体
- Openssl 通用型 对称加密模型