洛谷P1161 开灯
n输入2762时输出数据本应是1228,但是运行出来的是801,但是n为较小数时输出结果正确
#include
int lamp[2000001]={0};
int main()
{
//int lamp[2000001]={0};
int n;
scanf("%d",&n);
for(int i=0;ifloat a;
int t;
scanf("%f%d",&a,&t);
for(int j=1;j<=t;j++)
{
int m;
m=a*j;
if(lamp[m]==0)lamp[m]=1;
else lamp[m]=0;
}
}
int x;
for(int i=1;;i++)
{
if(lamp[i]==1)
{
x=i;
break;
}
}
printf("%d",x);
}
小一点的测试集可以过,但一旦n特别大,输出的结果就不对
是通过循环进行1 0判断来实现按灯的开关的,实在是不知道代码哪里还有问题,求捞QAQ
想知道为什么n大一点的时候输出数据不对
#include<iostream>
using namespace std;
int main()
{
int n;
double a;
int t;
int ans = 0;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a >> t;
for (int j = 1; j <= t; j++)
ans ^= int(a * j); //异或
}
cout << ans;
return 0;
}