74分跪求debug(#7,#8wa),set+map求解

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

@[A_Little_BadBoy](/user/1159333) 本来可以直接存数组然后 n log n 快速排序的。。。你弄这么复杂还加一个 log ,,
by xiaozengX @ 2023-12-22 00:22:00


@[A_Little_BadBoy](/user/1159333) 你同价格的牛奶总数读入的时候根本没加上
by xiaozengX @ 2023-12-22 00:31:46


@[A_Little_BadBoy](/user/1159333) 你这写法真是。。。不知道怎么评了 ```cpp #include <bits/stdc++.h> using namespace std; #define int long long int n,m,p,a;//题目要求 long long total=0;//记录总价格 map<int,int>t1;//存放单价和数量 set<int>t2;//存放单价 signed main() { cin>>n>>m; for(int i=1;i<=m;i++) { cin>>p>>a; if(!t1.count(p)){ t1[p]=a; } else { t1[p]=t1[p]+a; } t2.insert(p); } for(auto i:t2)//从最小值开始遍历单价 { int temp=min(n,t1[i]);//取min(该单价的总牛奶数,目前还需的总牛奶数) total+=i*temp; n-=temp; if(!n)break;//n==0结束循环 } cout<<total; return 0; } ``` 这样就过了,你 count 应该判这个农夫的单价而不是这个农夫的牛奶持有数量 建议您好好学基础的数组、排序等等数据存储和处理方式,set和map都是基于平衡树实现的查询工具,本身是具有 log n 的时间复杂度的,解决更为困难的题目的时候会占用很多时间资源导致 TLE ,调试过程中也会造成很多困扰
by xiaozengX @ 2023-12-22 00:35:57


**感谢大佬出手相助!** @xiaozengX原来的代码已AC,之后已重新按照您的思路重写了一遍(已通过),十分感谢!
by A_Little_BadBoy @ 2023-12-22 16:20:09


|