huanghao666 题解分享 · 2025/3/18
蚂蚁感冒(编程题) - 题解
``` #include<iostream> ``` include include using namespace std; int n; int sum=1; const int N=50; int a[N]; int main(){ int point=-1; cin>>n; for(int i=0;i >a[i]; if(i==0){ point=a[i]; } } //如果有病蚂蚁向右爬 if(point>0){ //把在蚂蚁前面的且往左走的全部算上 int k=0; for(int i=1;i point) k++; } sum+=k; //如果说前面有传染,那么蚂蚁后边的向右边走的也会被感染 if(k!=0){ ``` for(int i=1;i<n;i++){ if(a[i]>0&&a[i]<point) sum++; } } } else if(point<0){ //感冒蚂蚁向左边走 int k=0; //统计在蚂蚁左边且向右边走的蚂蚁 for(int i=1;i<n;i++){ if(a[i]>0&&a[i]<abs(point)){ k++; } } sum+=k; if(k!=0){ for(int i=1;i<n;i++){ if(a[i]<0&&a[i]<point){ sum++; } } } } ``` cout<<sum<<endl; }
查看全文
0 0 0 1
yt99 题解分享 · 2024/4/11
蚂蚁感冒(编程题) - 题解
``` #include <bits/stdc++.h> typedef long long LL; using namespace std; int n; int a[60]; int main() { cin>>n; int left=0,right=0; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) { if(abs(a[i])<abs(a[1]) && a[i]>0) left++; if(abs(a[i])>abs(a[1]) && a[i]<0) right++; } if((a[1]>0 && right==0) || (a[1]<0 && left==0)) cout<<1<<endl; else cout<<left+right+1<<endl; return 0; } ```
查看全文
0 0 0 2
锦先生 题解分享 · 2024/4/6
蚂蚁感冒(编程题) - 题解
简单模拟 ```cpp #include<bits/stdc++.h> using namespace std; int main() { int w,m,n; cin>>w>>m>>n; if(m>n)swap(m,n); int x=m; int a=(m-1)/w,b=(n-1)/w; int d=0,step=0; for(int r=a+1;r<=b;r++){ if((r-1)&1==0 && r&1)d=2*w-(x%w)-1; else d=(w-x%w)*2+1; step++; // cout<<"d:"<<d<<endl; // cout<<"step:"<<step<<endl; x+=d; // cout<<"x:"<<x<<endl; } step+=abs(x-n); cout<<step<<endl; return 0; } ```
查看全文
0 0 0 1