C++ 获得WA,创建自己的测试用例,但未获得批准的答案 问题链接:

C++ 获得WA,创建自己的测试用例,但未获得批准的答案 问题链接:,c++,C++,问题陈述 Chef在二维笛卡尔坐标系中具有N轴平行矩形。这些矩形可以相交,但可以保证它们的所有4N个顶点都是两两不同的 不幸的是,Chef失去了一个顶点,到目前为止,他的修复都没有成功(尽管在牛奶盒上放置一个点的图像可能毕竟不是最好的主意…)。因此,他给了你找到它的任务!您将获得剩余的4N−1分,你应该找到缺失的一个 有人能告诉我哪里出了问题,或者更新我的代码,或者分享一些测试用例。 #包括 #包括 #包括 #包括 #定义ll long long 使用名称空间std; int main() {

问题陈述

Chef在二维笛卡尔坐标系中具有N轴平行矩形。这些矩形可以相交,但可以保证它们的所有4N个顶点都是两两不同的

不幸的是,Chef失去了一个顶点,到目前为止,他的修复都没有成功(尽管在牛奶盒上放置一个点的图像可能毕竟不是最好的主意…)。因此,他给了你找到它的任务!您将获得剩余的4N−1分,你应该找到缺失的一个

有人能告诉我哪里出了问题,或者更新我的代码,或者分享一些测试用例。

#包括
#包括
#包括
#包括
#定义ll long long
使用名称空间std;
int main()
{
int t;
cin>>t;
for(int i=0;i>n;
m=4*n-1;
llx[m],y[m];
法学博士,法学博士;
a=(m-1)/2;
对于(ll i=0;i>x[i]>>y[i];
v、 向后推(形成一对(x[i],y[i]);
}
排序(v.begin(),v.end());
对于(ll i=a;i>=1;--i)
{
if(v[2*i].first!=v[2*i-1].first)
{
c=v[2*i]。首先;
checkx=true;
如果((2*i)%4==0&&i>=2)
{
如果(v[2*i].second==v[2*i+1].second)
{
d=v[2*i+2]。第二;
}
其他的
{
d=v[2*i+1]。秒;
}
}
其他的
{
if(v[2*i].second!=v[2*i-1].second)
{
d=v[2*i-1]。秒;
}
其他的
{
d=v[2*i-2]。第二;
}
}
打破
}
}
如果(选中X)
{

cout下面是一个代码不起作用的测试用例:

1
2
1 1
1 4
4 6
6 1
9 6
9 3
4 3
代码的输出是
(6,3)
,但它应该是
(6,4)

我想你可以检查更多矩形相交的情况。

你不需要做这么复杂的事情。只需输入你的
x
y
向量,然后对每个向量的每个元素进行异或运算。最后的值就是所需的答案

逻辑

(a,b)------------------(c,b)
  |                      |
  |                      |
  |                      |
  |                      |
(a,d)------------------(c,d)
从这个图可以看出,每个变量(
a
b
c
d
)出现偶数次。对于
N
矩形,这个“偶数”也将成立。因此,您必须找到出现奇数次的
x
y
的值

在这种情况下,要找到奇数,最好的技巧是对向量的每个元素进行异或运算。这是因为异或的这些性质:
kxor k=0
kxor 0=k

代码:

#包括
#包括
#包括
#包括
签名main(){
标准:尺寸t,n;
标准:cin>>t;
而(t--){
标准:cin>>n;
n=4*n-1;
std::向量x(n),y(n);
对于(标准::大小\u t i=0;i>x.at(i)>>y.at(i);

std::cout此解决方案看起来过于复杂。当然,您只需要将
x
y
值收集到单独的向量中,并在每个向量中找到出现奇数次的值。当然,我会修改我的复杂代码。您能否提供一些代码无法工作的测试用例。您希望我:(A)分析没有注释和没有帮助的变量名的程序;(B)确定可能的失败点;(C)设计测试用例使其失败;(D)向您汇报。抱歉,但这确实不是本网站的工作方式。您甚至还没有展示您目前使用的测试用例,也没有详细讨论您尝试过的内容。如果我是您,我会首先问您自己成对向量的排序是如何工作的。可能是您做出了错误的假设吗关于搜索紧邻的值是否合适?
ll x[m],y[m]第二,C++中的数组必须具有编译时常数,而不是运行时变量。因此,该行不是合法的C++。你有一个<代码>包含< /COD>,所以你应该在这里使用:<代码> STD::向量X(m),y(m)另外,如果 M>代码>代码足够大,那么使用非合法C++语法会吹出堆栈内存。底线是,你不能从CordCef这样的“竞争”网站学习好的C++程序。
(a,b)------------------(c,b)
  |                      |
  |                      |
  |                      |
  |                      |
(a,d)------------------(c,d)
from functools import reduce
for _ in range(int(input())):
    n=int(input())
    li=[]
    li1=[]
    for i in range(4*n-1):
        m,n=map(int,input().split())
        li.append(m)
        li1.append(n)
    r =reduce(lambda x, y: x ^ y,li)
    print(r,end=' ')
    r =reduce(lambda x, y: x ^ y,li1)
    print(r,end=' ')
    print()