网易2018校招笔试编程题【射杀怪兽】

逻辑还是不够好,考虑不到特殊情况。
三道题用了半个小时分析思路和算法,准备着手做第三道射杀怪兽的题,半个小时编程,第一次运行ac10%,发现自己没有考虑到界限问题和原点问题,改了半个小时思路还是有点乱,最后ac20%。
刚刚继续改了20分钟,这次应该对了。
#include <iostream>
using namespace std;

void re_zuobiao(long long x[], long long y[], int num)//把主人公放到所有怪兽的中心去,平移所有怪兽。
{
	int i;
	long long zx = 0;
	long long zy = 0;
	for (i = 0; i < num; i++)
	{
		zx += x[i];
		zy += y[i];
	}
	zx = zx / num;
	zy = zy / num;
	for (i = 0; i < num; i++)
	{
		x[i] -= zx;
		y[i] -= zy;
	}
}
//求各个怪兽到原点组成的向量的角度,角度表示用的正切,正割的反。
//一三象限用y/x,二四象限用-x/y
//可以保证垂直向量可以有同一个解。
void max_num(long long x[], long long y[], int num)
{
	float theta[50];
	int theta_count[50] = { 0 };
	int p = 1; // 保留角度数组中的元素个数
	float angle;
	int i, j;
	int flag;
	int max = 0;
	for (i = 0; i < num; i++)
	{
		flag = 0;
		if (y[i] == 0 || x[i] == 0)
			angle = 0;
		else
			angle = float(y[i]) / float(x[i]);//记号,考虑强制转换是否可以留下小数部分
		if (y[i] == 0 && x[i] == 0)
		{
			theta_count[0] += 1;
			continue;
		}
		if (angle < 0)
			angle = -float(x[i]) / float(y[i]);
		for (j = 1; j <= p; j++)
		{
			if (theta[j] == angle)
			{
				theta_count[j]++;
				flag = 1;
			}
		}
		if (flag == 0)
		{
			theta[p] = angle;
			theta_count[p] = 1;
			p++;
		}
	}
	for (i = 1; i <= p; i++)
	{
		if (max < theta_count[i])
		{
			max = theta_count[i];
		}
	}
	cout << max + theta_count[0];

}
int main()
{
	int num;
	long long x[50], y[50];
	cin >> num;
	for (int i = 0; i < num; i++)
		cin >> x[i];
	for (int j = 0; j < num; j++)
		cin >> y[j];
	re_zuobiao(x, y, num);
	max_num(x, y, num);
	return 0;
}

全部评论
直接输出n过30%。。。
点赞 回复 分享
发布于 2017-09-09 18:08

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
11231次浏览 95人参与
# 你的实习产出是真实的还是包装的? #
1989次浏览 42人参与
# 巨人网络春招 #
11384次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7669次浏览 43人参与
# 简历第一个项目做什么 #
31766次浏览 341人参与
# 重来一次,我还会选择这个专业吗 #
433605次浏览 3926人参与
# 米连集团26产品管培生项目 #
6066次浏览 216人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187244次浏览 1122人参与
# 牛客AI文生图 #
21454次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152492次浏览 888人参与
# 研究所笔面经互助 #
118980次浏览 577人参与
# 简历中的项目经历要怎么写? #
310418次浏览 4220人参与
# AI时代,哪些岗位最容易被淘汰 #
63923次浏览 829人参与
# 面试紧张时你会有什么表现? #
30522次浏览 188人参与
# 你今年的平均薪资是多少? #
213171次浏览 1039人参与
# 你怎么看待AI面试 #
180211次浏览 1259人参与
# 高学历就一定能找到好工作吗? #
64342次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76569次浏览 374人参与
# 我的求职精神状态 #
448194次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363565次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160695次浏览 1112人参与
# 校招笔试 #
471355次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务