#include<iostream> using namespace std; int main (long long){ int n,m; int cnt=0; cin>>n>>m; for(int g=1;g<=n;g++){ for(int x=3;x<=n-g;x+=3){ int mu=m-g-x; if(g*3+mu+x/3.0==100&&mu>0){ cnt++; } } } cout<<cnt; return 0; }
时间: 2024-03-26 11:36:29 浏览: 122
#include <iostream>
这段代码的思路是正确的,但是存在几个问题:
1. `main` 函数的参数类型应该是 `int`,而不是 `long long`;
2. 在计算小鸡的数量时,应该是 `(n - g - x) * 3`,而不是 `mu`;
3. 在判断方案是否可行时,应该是 `if(g*3+mu+x/3==m && mu > 0)`,而不是 `if(g*3+mu+x/3.0==100&&mu>0)`。
下面是修正后的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n, m, cnt = 0;
cin >> n >> m;
for (int g = 1; g <= n; g++) {
for (int x = 3; x <= n - g; x += 3) {
int mu = m - g * 3 - x / 3;
if (g * 3 + mu + x / 3 == m && mu > 0) {
cnt++;
}
}
}
cout << cnt << endl;
return 0;
}
```
这段代码的时间复杂度和前面的算法一样,都是 $O(n^2)$,可以通过本题的数据范围。
阅读全文