一、开灯
#include<bits/stdc++.h>
using namespace std;
int n;
double x,y;
int arr[2533232];//注意数组范围
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
scanf("%lf%lf",&x,&y);
for(double j=1;j<=y;j++)
{
int a=floor(j*x);
if(arr[a]==0)
{
arr[a]=1;
}
else
arr[a]=0;
}
}
for(int i=1;;i++)
{
if(arr[i]==1)
{
printf("%d",i);
break;
}
}
return 0;
}
二、【Mc生存】插火把
#include<bits/stdc++.h>
using namespace std;
int arr[10086][10086];
int n,m,k;
int x,y,ans=0;
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
x+=2;//注意数组越界
y+=2;
arr[x][y]=1;
arr[x+2][y]=1;
arr[x+1][y]=1;
arr[x-2][y]=1;
arr[x-1][y]=1;
arr[x][y+1]=1;
arr[x][y+2]=1;
arr[x][y-1]=1;
arr[x][y-2]=1;
arr[x+1][y+1]=1;
arr[x-1][y-1]=1;
arr[x+1][y-1]=1;
arr[x-1][y+1]=1;
}
for(int i=1;i<=k;i++)
{
scanf("%d%d",&x,&y);
x+=2;
y+=2;
for(int j=x-2;j<=x+2;j++)
{
for(int k=y-2;k<=y+2;k++)
{
arr[j][k]=1;
}
}
}
for(int i=3;i<=n+2;i++)
{
for(int j=3;j<=n+2;j++)
{
if(arr[i][j]==0)
{
ans++;
}
}
}
printf("%d",ans);
return 0;
}
三、压缩技术
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a=0,b=0,p=0,i=0,count=0;
int arr[10086];
cin>>n;
while(p<n*n)
{
cin>>a;
i++;
for(b=a;b>=1;b--)
{
if(count==n)
{
printf("\n");
count=0;
}
if(i%2==1)
cout<<0;
else
cout<<1;
count++;
p++;
}
}
printf("\n");
return 0;
}