mirror of
https://gitcode.com/Zengtudor/alg2025.git
synced 2025-12-17 12:43:06 +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 <bitset>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <istream>
|
#include <istream>
|
||||||
|
#include <print>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
using ll = int64_t;
|
using ll = int64_t;
|
||||||
|
|
||||||
const ll maxa=5e6+5;
|
const ll maxa=5e6+5;
|
||||||
std::vector<ll> a, t;
|
std::vector<ll> t;
|
||||||
std::bitset<maxa> isp;
|
std::bitset<maxa> isp;
|
||||||
|
|
||||||
static inline void solve(){
|
static inline void solve(){
|
||||||
ll n;
|
ll n;
|
||||||
std::cin>>n;
|
std::cin>>n;
|
||||||
a.clear();
|
// a.clear();
|
||||||
a.resize(n+1);
|
// a.resize(n+1);
|
||||||
|
ll minn = 1e9+7;
|
||||||
|
ll a=-1;
|
||||||
for(ll i=1;i<=n;i++){
|
for(ll i=1;i<=n;i++){
|
||||||
ll tmp;
|
ll tmp;
|
||||||
std::cin>>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(){
|
int main(){
|
||||||
@ -38,6 +49,10 @@ int main(){
|
|||||||
// for(ll i=1;i<=100;i++)if(isp[i])std::cout<<i<<"\n";
|
// for(ll i=1;i<=100;i++)if(isp[i])std::cout<<i<<"\n";
|
||||||
t.resize(maxa);
|
t.resize(maxa);
|
||||||
for(ll i=1;i<t.size();i++){
|
for(ll i=1;i<t.size();i++){
|
||||||
|
if((i&1)==0){
|
||||||
|
t[i]=i/4;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ll nt=0,ni=i;
|
ll nt=0,ni=i;
|
||||||
while(ni>=4){
|
while(ni>=4){
|
||||||
if(isp[ni]){
|
if(isp[ni]){
|
||||||
@ -47,8 +62,9 @@ int main(){
|
|||||||
nt++;
|
nt++;
|
||||||
ni-=4;
|
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;
|
ll T;
|
||||||
std::cin>>T;
|
std::cin>>T;
|
||||||
while(T--){
|
while(T--){
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user