ACM ICPC -Number Theory
ACM ICPC -Number Theory
我正在练习ACM ICPC过去的问题 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1030
我无法解决这个问题,也完全不知道如何在 3 秒的时间限制内以有效的方式做到这一点。我认为这个问题是基于数论的,但不知道该怎么做。谢谢!
虽然转化为向量问题,但三维向量和这么多变量有些棘手,所以我们可以先降维,把原来的方程改成: A[1]* (s[1][2]-s[1][1], s[1][3]-s[1][1]) + a[2]* (s[2][2]- s[2][1], s[2][3]- s[2][1]) +.....+a[n]* (s[n][2]- s[n][1],..+a[n]*) = (())
.二维向量被视为从平面坐标系中的原点开始的向量。如果只有两个向量,因为a[i]
是一个非负数,所以当只有两个向量时,角度必须PI
。如果两个相邻向量之间的角度不大于 PI
,则 N 个向量可以满足上述方程。代码不长,但需要数学思维T_T这是正确的代码。
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn=1000+5;
const double PI=acos(-1);
int main()
{
int n;
double A[maxn];
while(scanf("%d",&n),n)
{
int s1,s2,s3;
for(int i=0;i<n;i++)
{
scanf("%d%d%d",&s1,&s2,&s3);
A[i]=atan2(s2-s1,s3-s1);
}
sort(A,A+n);
double tmp=0;
for(int i=1;i<n;i++)
tmp=max(tmp,A[i]-A[i-1]);
tmp=max(tmp,A[0]-A[n-1]+2*PI);
if(tmp<=PI)
printf("Yesn");
else
printf("Non");
}
return 0;
}
所以
我相信给定:
(a1,b1,c1), (a2,b2,c2) ... (an,bn,cn)
您需要确定是否存在非负系数:
X = (x1,x2,...,xn)
这样
x1*a1 + x2*a2 + ... + xn*an ==
x1*b1 + x2*b2 + ... + xn*bn ==
x1*c1 + x2*c2 + ... + xn*cn
只需要一点线性代数。
提示:尝试构造一个 n == 4 的输入,这样所有 4 个 xi 都需要为正数才能解决问题(并且不能仅用 3 来解决)。 这可能吗?
相关文章:
- 具有变量Number of Arguments的std::函数的矢量
- 什么"!<number> 在 C/C++ 中表示
- 找到$number,然后将其替换为$number+1
- Rcpp 'candidate function has different number of parameters (expected 0 but has 1)'
- 如果 i<=number-1,那么 i 的最大值应该是 number-1,那么 number%1==0 或 i==number 语句如何为真?
- 使用 Boost ASIO 和 SSL 时出现"Wrong Version Number"错误 (C++)
- QMutex with QThread - prime number sekeer
- 由于错误'wrong version number'无法完成握手
- 是否有与C++"-Wl,--stack,[a number, e.g. 4194304 for 4Mb of stack]"的 CUDA 等效性?
- C++相当于 Python '#'*number?
- 为什么在这种情况下使用 int *arr = new int [number]
- 是否有内置函数返回" the number of true value in a boolean vector "?
- 函数参考funcname @number, @x是什么意思
- 为什么此代码只能识别文本文件中的第一行?输入任何大于 1 的数字都会返回"Atomic Number Not Found"
- 了解C++代码 - "Get the number of digits in an int"
- 从 learncpp.com 做基本运动,煎饼贪吃"the least number"的输出是不对的
- Complex number class
- 如何防止从函数生成的字符串中使用科学记数法"number to string"?
- Number of tuples
- ACM ICPC -Number Theory