62分代码求助

P1208 [USACO1.3] 混合牛奶 Mixing Milk

哦哦,cmp应该是 ```c bool cmp(node a, node b) { return a.mon < b.mon; } ``` 上面给的是WA了更多的代码
by cscst @ 2021-08-04 16:51:47


初始化的原因 将while中的```int sum; ``` 改为 ```int sum = 0;```即可。
by alvis @ 2021-08-04 17:13:13


@[alvis](/user/195388) 刚才改了,第一个点A了,不过第7个第8个还是WA
by cscst @ 2021-08-04 17:15:43


这样就A了 ```cpp #include<bits/stdc++.h> using namespace std; int need, m; long long ans = 0; struct node { int mon; int num; } a[5005]; bool cmp(node a, node b) { return a.mon < b.mon; } int main() { cin >> need >> m; for(int i = 1; i <= m; i++) cin >> a[i].mon >> a[i].num; sort(a + 1, a + m + 1, cmp); int j = 0; while(need) { j++; int sum = 0; sum += a[j].num; if(sum <= need) { need -= a[j].num; ans += a[j].num * a[j].mon; } else { while(need) { a[j].num--; need--; ans += a[j].mon; } } //cout << "ans : " << ans << " " << "need : " << need << " " << j<< endl; } cout << ans; } ```
by alvis @ 2021-08-04 17:28:59


@[alvis](/user/195388) 谢谢,不过else里面可以用更简单的方法。 ```c ans += need * a[j].mon; break; ```
by cscst @ 2021-08-04 17:45:56


|