Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

竟然M_PI编译不过?坑!

Posted by KatrineYang at 2016-06-30 13:53:52 on Problem 2007
我include了math.h和cmath都不行,什么鬼玩意啊!为此贡献了两次CE。。。
//============================================================================
// Name        : main2007.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <cmath>
using namespace std;

const double M_PI_ = 3.141592654;

double jiao(int x, int y){
	if(y == 0 && x > 0) return 0;
	if(y == 0 && x < 0) return M_PI_;
	double ac = acos(x/sqrt(x*x+y*y+0.0));
	//cout << ac << endl;
	double res = ac * 180 / M_PI_;
	if(y > 0) return res;
	return 360 - res;
}

int partion(double *array, int *xes, int *yes, int p, int r) {
		double x = array[r];
		int i = p - 1;//注意这点,把i设成负值,然后作为移动的标志
		int j;
		for (j = p; j < r; j++) {
			if (array[j] < x) {
				i++;
				double temp = array[j];
				array[j] = array[i];
				array[i] = temp;
				int tmp = xes[j];
				xes[j] = xes[i];
				xes[i] = tmp;
				tmp = yes[j];
				yes[j] = yes[i];
				yes[i] = tmp;
			}
		}
		double temp = array[j];
		array[j] = array[i + 1];
		array[i + 1] = temp;
		int tmp = xes[j];
		xes[j] = xes[i+1];
		xes[i+1] = tmp;
		tmp = yes[j];
		yes[j] = yes[i+1];
		yes[i+1] = tmp;
		return i+1;//返回的应该是交换后的哨兵的位置
}
		//递归解决每个划分后的小
void quickSort(double *array, int *xes, int *yes, int p, int r) {
		if (p < r) {
			int q = partion(array, xes, yes, p, r);
			quickSort(array, xes, yes, p, q - 1);
			quickSort(array, xes, yes, q + 1, r);
		}
}


int main() {
	//cout << M_PI << endl;
	int zero_x, zero_y;
	int x_temp, y_temp;
	int xes[110], yes[110];
	double jes[110];
	int cnt = 0;
	cin >> zero_x >> zero_y;
	if(zero_x != 0 || zero_y != 0) return -1;
	while(cin >> x_temp >> y_temp){
		if(x_temp == 0 && y_temp == 0) break;
		xes[cnt] = x_temp;
		yes[cnt] = y_temp;
		cnt++;
	}
	//cout << cnt << endl;
	for(int i = 0; i < cnt; i++){
		jes[i] = jiao(xes[i], yes[i]);
	}
	quickSort(jes, xes, yes, 0, cnt-1);
	///for(int i = 0; i < cnt; i++){
	//	cout << xes[i] << " " << yes[i] << " " << jes[i] << endl;
	//}
	jes[cnt] = jes[0] + 360;

	cout << "(0,0)" << endl;
	int start = 0;
	for(int i = 0; i < cnt; i++){
		if(jes[i+1] - jes[i] > 180){
			start = i+1;
			break;
		}
	}
	for(int i = start; i < start+cnt; i++){
		cout << "(" << xes[i%cnt] << "," << yes[i%cnt] << ")" << endl;
	}
	//cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator