社区讨论
阶梯NIM疑问
P3480[POI 2009] KAM-Pebbles参与者 5已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lzcd50n2
- 此快照首次捕获于
- 2024/08/02 15:08 2 年前
- 此快照最后确认于
- 2024/08/02 16:05 2 年前
第一种写法(70pts):
第二种写法(100pts):
个人认为第二种写法有时候回比第一种写法多异或一个0。但是应该对答案没有影响,为什么第一种写法中只有70pts?
第一种写法:
CPP#include<bits/stdc++.h>
#define ll long long
#define endl '\n'
using namespace std;
ll n,a[1005],b[1005];
void work(){
cin>>n;
for(ll i=1;i<=n;i++)cin>>a[i];
for(ll i=1;i<n;i++)b[i]=a[i+1]-a[i];
ll asd=0;
for(ll i=n-1;i>=1;i-=2)asd^=b[i];
if(asd==0)cout<<"NIE"<<endl;
else cout<<"TAK"<<endl;
}
signed main(){
ios::sync_with_stdio(false);
ll T;cin>>T;
while(T--)work();
return 0;
}
第二种写法:
CPP#include<bits/stdc++.h>
#define ll long long
#define endl '\n'
using namespace std;
ll n,a[1005],b[1005];
void work(){
cin>>n;
for(ll i=1;i<=n;i++)cin>>a[i];
for(ll i=1;i<=n;i++)b[i]=a[i]-a[i-1];
ll asd=0;
for(ll i=n;i>=1;i-=2)asd^=b[i];
if(asd==0)cout<<"NIE"<<endl;
else cout<<"TAK"<<endl;
}
signed main(){
ios::sync_with_stdio(false);
ll T;cin>>T;
while(T--)work();
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...