5 条题解
-
5
60分,dfs枚举所有可能性
每件物品要么网购,要么商店购买,可以用 dfs 枚举出所有方案,时间复杂度 , 时都是可以的。
#include <bits/stdc++.h> using namespace std; int n; struct Sth { long long a, b; }; Sth a[100005]; long long ans = 0; void dfs(int now, long long suma, long long maxb) { if (now > n) { ans = min(ans, max(suma, maxb)); return; } dfs(now + 1, suma + a[now].a, maxb); dfs(now + 1, suma, max(maxb, a[now].b)); } int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n; for (int i = 1; i <= n; i++) cin >> a[i].a; for (int i = 1; i <= n; i++) { cin >> a[i].b; ans = max(ans, a[i].b); } dfs(1, 0, 0); cout << ans << endl; return 0; }
100分:贪心
选择一个最大网购时间后,相当于所有大于这个网购时间的物品都是去商店购买,因此只需要按照网购时间排序,然后枚举每个物品作为最大网购时间的情况即可。时间复杂度
cin >> n; for (int i = 1; i <= n; i++) cin >> a[i].a; for (int i = 1; i <= n; i++) cin >> a[i].b; sort(a + 1, a + n + 1, cmp); long long ans = a[1].b; long long sum = 0; a[n + 1].b = 0; for (int i = 1; i <= n; i++) { sum = sum + a[i].a; ans = min(ans, max(sum, a[i + 1].b)); } cout << ans << "\n";
100分:二分答案
对于每一个时间 判断是否可以 的时间内送达,即判断所有网购时间小于 的物品的到店购买时间之和是否小于等于 。
这题出题时希望大家写的就是这个做法,但大家似乎都是贪心写的 hhhhh
代码:略
-
1
贪心
嘤嘤嘤不知道为什么我的ans和sum一定义成long long类型程序就报错
到最后我也不知道咋搞的就过样例了#include<bits/stdc++.h> using namespace std; const int maxn = 1e9+5; int n; long long ans,sum=0; struct Buy{ long long a,b; }buy[100005]; bool cmp(Buy x,Buy y){ return x.b>y.b; } int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n; for(int i=1;i<=n;i++){ cin>>buy[i].a; } for(int i=1;i<=n;i++){ cin>>buy[i].b; } sort(buy+1,buy+n+1,cmp); ans=buy[1].b; buy[n+1].b=0; for(int i=1;i<=n;i++){ sum+=buy[i].a; ans=min(ans,max(sum,buy[i+1].b)); } cout<<ans; return 0; }
-
-3
写题解请注意 鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
- 1
信息
- ID
- 1208
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 488
- 已通过
- 163
- 上传者