自创数组模拟指针 2645: Working in JLU
来源:互联网 发布:心理医生在线解答软件 编辑:程序博客网 时间:2024/05/16 19:51
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
struct t
{
int p,d;
}s[100001];
int f[100001];
bool cmp(t a,t b)
{
return (a.p>b.p);
}
int main()
{
int n,i,j;
long long max;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=100000;i++) f[i]=i;
max=0;
for(i=0;i<n;i++) scanf("%d%d",&s[i].p,&s[i].d);
sort(s,s+n,cmp);
for(i=0;i<n;i++)
{
bool flag=false;
if(f[s[i].d]==s[i].d)
{
flag=true;//找到
f[s[i].d]=s[i].d-1;;
}
else
{
int temp=f[f[s[i].d]];
while(!flag&&temp>0)
{
temp=f[f[s[i].d]];
if(f[temp]==temp&&f[temp]>0)
{
flag=true;
}
if(temp>1&&flag)
f[temp]=f[f[temp-1]];
else
if(flag)
f[temp]=0;
if(!flag) f[f[s[i].d]]=f[temp];
}
}
if(flag) max+=s[i].p;
}
printf("%lld/n",max);
}
return 0;
}
- 自创数组模拟指针 2645: Working in JLU
- 自创数组模拟指针 2652: 数组操作
- JOJ2645 Working in JLU (任务调度 贪心算法 并查集 )
- acm.jlu.edu.cn-2098-All in All
- Working in shanghai
- Working in the Background
- hdu4011 Working in Beijing
- Working in Ericsson
- working experience in MST
- Working in Unity
- 栈的应用 数组模拟 (指针)
- Thinking in C++: 指针数组与数组指针
- Working with Hibernate in Eclipse
- Working with Files in C#
- hdu 4011.Working in Beijing
- Working-with-files-in-javascript
- Working with JSON in C#
- Last Working Day in NOKIA
- 2651: 奇怪的晚会
- IBM教程:将samba用作pdc
- VC 6.0在链接Link时经常卡死问题
- 集装箱堆场管理系统
- tab控件的用法
- 自创数组模拟指针 2645: Working in JLU
- 无题
- 三层架构总结
- 用PowerDesigner12利用ODBC连接SQL2005进行反向工程时,
- 2647: Restaurant II
- C#(ASP.Net)获取当前路径的方法集合
- 【水晶报表实例应用】一页分上下两部分列印
- 关于 OWC11 组件
- 2640: More Vertexes, More Area