如何将【解题报告】Task改写为一个长尾词?

2026-04-16 20:054阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计449个文字,预计阅读时间需要2分钟。

如何将【解题报告】Task改写为一个长尾词?

【解题报告】Task:任务问题:问题解题思路:贪心我们可以为每个任务设定一个优先级,优先级由任务的等级和所需时间共同决定。具体步骤如下:

1.为每个任务计算优先级,优先级=等级 * 时间

2.按照优先级对任务进行排序

3.从优先级最高的任务开始执行,直到所有任务完成

AC代码:

如何将【解题报告】Task改写为一个长尾词?

Task

题目:任务

解题思路:

贪心

我们可以贪心每个任务的等级,再贪心每个任务的时间,我们这样排一下序,再循环一下,就可以得到正确的答案了

AC代码

#include <iostream> #include <cstdio> #include <algorithm> using namespace std; const long long maxn=100010; long long n,m; struct task { long long x; long long y; }; task f[maxn]; task e[maxn]; long long cnt[105],ans,num; long long cmp(task a,task b) { if(a.x==b.x) return a.y>b.y; return a.x>b.x; } int main() { cin>>n>>m; for(long long i=1;i<=n;i++) cin>>e[i].x>>e[i].y; for(long long i=1;i<=m;i++) cin>>f[i].x>>f[i].y; sort(e+1,e+1+n,cmp); sort(f+1,f+1+m,cmp); long long j=1; for(long long i=1;i<=m;i++) { while(j<=n&&e[j].x>=f[i].x) { cnt[e[j].y]++; j++; } for(long long k=f[i].y;k<=100;k++) { if(cnt[k]) { num++; cnt[k]--; ans+=500*f[i].x+2*f[i].y; break; } } } cout<<num<<" "<<ans<<endl; return 0; }

PS:实在不懂为什么别人的代码要用pair

本文共计449个文字,预计阅读时间需要2分钟。

如何将【解题报告】Task改写为一个长尾词?

【解题报告】Task:任务问题:问题解题思路:贪心我们可以为每个任务设定一个优先级,优先级由任务的等级和所需时间共同决定。具体步骤如下:

1.为每个任务计算优先级,优先级=等级 * 时间

2.按照优先级对任务进行排序

3.从优先级最高的任务开始执行,直到所有任务完成

AC代码:

如何将【解题报告】Task改写为一个长尾词?

Task

题目:任务

解题思路:

贪心

我们可以贪心每个任务的等级,再贪心每个任务的时间,我们这样排一下序,再循环一下,就可以得到正确的答案了

AC代码

#include <iostream> #include <cstdio> #include <algorithm> using namespace std; const long long maxn=100010; long long n,m; struct task { long long x; long long y; }; task f[maxn]; task e[maxn]; long long cnt[105],ans,num; long long cmp(task a,task b) { if(a.x==b.x) return a.y>b.y; return a.x>b.x; } int main() { cin>>n>>m; for(long long i=1;i<=n;i++) cin>>e[i].x>>e[i].y; for(long long i=1;i<=m;i++) cin>>f[i].x>>f[i].y; sort(e+1,e+1+n,cmp); sort(f+1,f+1+m,cmp); long long j=1; for(long long i=1;i<=m;i++) { while(j<=n&&e[j].x>=f[i].x) { cnt[e[j].y]++; j++; } for(long long k=f[i].y;k<=100;k++) { if(cnt[k]) { num++; cnt[k]--; ans+=500*f[i].x+2*f[i].y; break; } } } cout<<num<<" "<<ans<<endl; return 0; }

PS:实在不懂为什么别人的代码要用pair