mirror of
https://gitcode.com/Zengtudor/alg2025.git
synced 2025-10-17 21:42:25 +00:00
feat(P8901): 优化农夫游戏逻辑并改进性能
- 移除不必要的数组a,改用变量存储最小值 - 添加对偶数的特殊处理,直接计算t[i]值 - 修改游戏结果判断逻辑,基于模4运算决定获胜者 - 清理调试代码和注释
This commit is contained in:
parent
82d3e19015
commit
dc8c323910
@ -1,27 +1,38 @@
|
||||
#include <algorithm>
|
||||
#include <bitset>
|
||||
#include <cstdint>
|
||||
#include <cstdio>
|
||||
#include <iostream>
|
||||
#include <istream>
|
||||
#include <print>
|
||||
#include <vector>
|
||||
|
||||
using ll = int64_t;
|
||||
|
||||
const ll maxa=5e6+5;
|
||||
std::vector<ll> a, t;
|
||||
std::vector<ll> t;
|
||||
std::bitset<maxa> isp;
|
||||
|
||||
static inline void solve(){
|
||||
ll n;
|
||||
std::cin>>n;
|
||||
a.clear();
|
||||
a.resize(n+1);
|
||||
// a.clear();
|
||||
// a.resize(n+1);
|
||||
ll minn = 1e9+7;
|
||||
ll a=-1;
|
||||
for(ll i=1;i<=n;i++){
|
||||
ll tmp;
|
||||
std::cin>>tmp;
|
||||
a[i]=t[tmp];
|
||||
if(t[tmp]<minn){
|
||||
minn=t[tmp];
|
||||
a=tmp;
|
||||
}
|
||||
}
|
||||
if(!(a%4)){
|
||||
std::cout<<"Farmer Nhoj\n";
|
||||
}else{
|
||||
std::cout<<"Farmer John\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main(){
|
||||
@ -38,6 +49,10 @@ int main(){
|
||||
// for(ll i=1;i<=100;i++)if(isp[i])std::cout<<i<<"\n";
|
||||
t.resize(maxa);
|
||||
for(ll i=1;i<t.size();i++){
|
||||
if((i&1)==0){
|
||||
t[i]=i/4;
|
||||
continue;
|
||||
}
|
||||
ll nt=0,ni=i;
|
||||
while(ni>=4){
|
||||
if(isp[ni]){
|
||||
@ -47,8 +62,9 @@ int main(){
|
||||
nt++;
|
||||
ni-=4;
|
||||
}
|
||||
// printf("t[%lld]=%lld\n",i,t[i]);
|
||||
}
|
||||
for(ll i=1;i<=100;i++)printf("t[%lld]=%lld\n",i,t[i]);
|
||||
// for(ll i=1;i<=100;i++)printf("t[%lld]=%lld\n",i,t[i]);
|
||||
ll T;
|
||||
std::cin>>T;
|
||||
while(T--){
|
||||
|
Loading…
Reference in New Issue
Block a user