uva 10167 Birthday Cake
2015-12-03 21:57
531 查看
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19398
题意:给出一些点的坐标,找一条过原点的直线把这些点平分(注意不能切到cherries)
#include<iostream>
#include<cstdio>
using namespace std;
#define f(x,y) (A*x+B*y)
struct Point{
int x,y;
Point() {}
}P[110];
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n)
{
int i,A,B,flag=0;
for(i=0;i<2*n;i++) scanf("%d%d",&P[i].x,&P[i].y);
for(A=-500;A<=500;A++) {
for(B=-500;B<=500;B++){
int cou=0;
for(i=0;i<2*n;i++) {
int t=f(P[i].x,P[i].y);
if(t==0) {cou=1; break;}
if(t>0) cou++;
if(t<0) cou--;
}
if(cou==0) {flag=1; break;}
}
if(flag) break;
}
printf("%d %d\n",A,B);
}
return 0;
}心得:没思路时,应静下心来手算几组数据并试着用模拟,暴力枚举,隐式图搜索等方法
题意:给出一些点的坐标,找一条过原点的直线把这些点平分(注意不能切到cherries)
#include<iostream>
#include<cstdio>
using namespace std;
#define f(x,y) (A*x+B*y)
struct Point{
int x,y;
Point() {}
}P[110];
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n)
{
int i,A,B,flag=0;
for(i=0;i<2*n;i++) scanf("%d%d",&P[i].x,&P[i].y);
for(A=-500;A<=500;A++) {
for(B=-500;B<=500;B++){
int cou=0;
for(i=0;i<2*n;i++) {
int t=f(P[i].x,P[i].y);
if(t==0) {cou=1; break;}
if(t>0) cou++;
if(t<0) cou--;
}
if(cou==0) {flag=1; break;}
}
if(flag) break;
}
printf("%d %d\n",A,B);
}
return 0;
}心得:没思路时,应静下心来手算几组数据并试着用模拟,暴力枚举,隐式图搜索等方法
相关文章推荐
- Github fork和pull request概念
- poj--1149--PIGS(最大流经典建图)
- c++中类模板(class template)简单示例 http://blog.csdn.net/richerg85/article/details/7565870
- Java多线程初学笔记
- 利用python中的pandas,sklearn进行数据挖掘 basic_of_datamining
- 模糊测试工具-peachFuzzer
- Happy Number
- Hadoop分布式文件系统(HDFS)详解
- poj--1149--PIGS(最大流经典建图)
- URI和URL的区别
- codeforces604B More Cowbell
- OpenCV 学习(Hough 变换提取直线)
- angular学习
- 网上视频下载
- $.extend()和(function($){….})(jQuery)
- OpenCV 学习(Hough 变换提取直线)
- 大数据第三天
- 树状数组基本概念
- 从源码安装使用Oracle数据库的Zabbix_server
- javascript代码注意事项