poj 3553 Task schedule
来源:互联网 发布:parsley.js 手册 编辑:程序博客网 时间:2024/05/17 08:13
贪心,按dj从小到大排序,并按次顺序加工。
因为对于最小的那个dj是不变的,那么如果先加工其他的,那么cj就会增大,从而cj - dj就会增大,所以要先加工dj小的。
#include <iostream>#include<vector>#include<stdio.h>#include<cstring>#include<algorithm>using namespace std;vector<int>a[50005];struct thing{ int p,d; int id;}t[50005];int n;int visit[50005]; //该id是否被访问过 int cmp(const void * a,const void * b){ return (*(thing *)a).d-(*(thing *)b).d; } void dfs(int cur){ if(visit[cur]) return; visit[cur]=1; int len=a[cur].size(); for(int i=0;i<len;i++) dfs(a[cur][i]); printf("%d\n",cur); }void init(){ for(int i=1;i<=n;i++) a[i].clear();}int main(){ scanf("%d",&n); init(); memset(visit,0,sizeof(visit)); for(int i=1;i<=n;i++){ scanf("%d %d",&t[i].p,&t[i].d); t[i].id=i; } qsort(t+1,n,sizeof(thing),cmp); int m; scanf("%d",&m); while(m--){ int temp1,temp2; scanf("%d %d",&temp1,&temp2); a[temp2].push_back(temp1); //a数组存做a之前一步要做的事情 } for(int i=1;i<=n;i++){ while(!visit[t[i].id]) dfs(t[i].id); } return 0;}
- poj 3553 Task schedule
- Task Schedule
- Task Schedule
- Task Schedule
- Task schedule
- Task schedule
- Task schedule
- Task Schedule
- Task schedule
- task schedule
- Task schedule
- hdu 3572 Task Schedule
- HDU 3572 Task Schedule
- hdu 3572 Task Schedule
- HDU 4907 Task schedule
- hdu 4907 Task schedule
- HDU4907-Task schedule
- hdu4907.Task schedule
- poj 1018 Communication System
- hdu 1827 Summer Holiday
- hdu 1295 Move Move Look
- poj 2367 Genealogical tree
- poj 3660 Cow Contest
- poj 3553 Task schedule
- C++ 简单实现HTTP GET/POST 请求
- poj 2488 A Knight's Journey
- 问题集2
- How compiler works
- AjaxPro版自动完成(Autocomplete)功能实现
- Silverlight访问页面dom元素
- DDL 数据定义语言
- 日期控件WdatePicker