这题一开始没看清楚

等级差距不超过1

1->2->3 就是错误的,因为3-1==2 ,意思是间接的也不行

其次等级最小是1,最大是n

你要到达1号首领的位置

假设1号等级x,限制m,最大上限hi,下限lo

hi - lo <= m

lo <= x <= hi

枚举 hi 和 lo

#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn = ;
const int INF = 0x3f3f3f3f;
int m,n;bool vis[maxn];
int dis[maxn];
int arr[maxn][maxn];
int lv[maxn];
int mind = 0x3f3f3f3f;
void djs(int ,int );
int main()
{
int cnt = ;
memset(arr,0x3f,sizeof(arr));
memset(dis,0x3f,sizeof(dis));
memset(vis,,sizeof(vis));
memset(lv,0x3f,sizeof(lv));
scanf("%d%d",&m,&n);
for(int i = ; i <= n; ++i)
{
int mon,level,t;
scanf("%d%d%d",&mon,&level,&t);
lv[i] = level;
arr[][i] = mon;
for(int j = ; j <= t; ++j)
{
int c,d;
scanf("%d%d",&c,&d);
//e[cnt++] = node{i,d,c};
arr[c][i] = d;
}
}
for(int h = lv[] + m,l = lv[]; h >= lv[]; h --,l -- )
djs(h,l);
cout << mind << endl; }
void djs(int hi,int lo)
{
memset(dis,0x3f,sizeof(dis));
memset(vis,,sizeof(vis));
dis[] = ;
lv[] = hi;
for(int i = ; i <= n; ++i)
{
int index = -; int minn = 0x3f3f3f3f;
for(int j = ; j <= n; ++j)
{
if(vis[j]) continue;
if(index == - || minn > dis[j])
index = j,minn = dis[j];
}
vis[index] = true;
for(int j = ; j <= n; ++j)
{
if( (lo<=lv[j]&&lv[j]<=hi) || lv[index] == -)
dis[j] = min(dis[j],dis[index] + arr[index][j]);
}
}
mind = min(mind,dis[]);
}

poj 1026的更多相关文章

  1. poj3270 && poj 1026(置换问题)

    | 1 2 3 4 5 6 | | 3 6 5 1 4 2 | 在一个置换下,x1->x2,x2->x3,...,xn->x1, 每一个置换都可以唯一的分解为若干个不交的循环 如上面 ...

  2. POJ 1026 Cipher(置换群)

    题目链接 题意 :由n个数字组成的密钥,每个数字都不相同,都在1-n之间,有一份长度小于等于n的信息,要求将信息放到密钥下边,一一对应,信息不足n的时候补空格,然后将位置重新排列,将此过程重复k次,求 ...

  3. poj 1026 Cipher

    置换群就可以搞定!!! 注意下格式就好了…… #include<iostream> #include<stdio.h> #include<algorithm> #i ...

  4. poj 1026(置换群)

    题意:给你一个变换规则,和一个字符串,问经过k次变换后得到的字符串. 思路:开始的时候试图去找它的整个周期,谁知道周期太大了,各种RE,后来在得知此题需要用置换群来优化,第一次接触置换群学习了下! 代 ...

  5. POJ 1026 Cipher(更换)

                                                                   Cipher Time Limit: 1000MS   Memory Li ...

  6. POJ 1026 置换群的k次幂问题

    题目大意: 给定了一组对应关系,经过k次幂后,得到新的对应关系b[i],然后将给定的字符串上的第i位字符放置到b[i]的位置上, 如果字符串长度不足n就用空格补足,这里的是空格,也就是str[i] = ...

  7. poj很好很有层次感(转)

    OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 30 ...

  8. POJ题目分类推荐 (很好很有层次感)

    著名题单,最初来源不详.直接来源:http://blog.csdn.net/a1dark/article/details/11714009 OJ上的一些水题(可用来练手和增加自信) (POJ 3299 ...

  9. acm数学(待续)

    意图写出http://www.cnblogs.com/kuangbin/archive/2012/08/28/2661066.html这个东西的完善版. 1.置换,置换的运算 poj 2369 Per ...

随机推荐

  1. mybatis实现自定义typeHandler

    java8以前的日期处理有多恶心,相信不少人都深有体会.与mabatis集成查询数据库中的日期字段映射为java日期类型或者字符型的时候,会多出一个".0".当然可以自行处理.但是 ...

  2. 分布式系统里session同步

    https://blog.csdn.net/xyw591238/article/details/51644315

  3. AttributeError: 'LoginForm' object has no attribute 'is_bound' , object has no attribute 'is_bound'

    'LoginForm' object has no attribute 'is_bound' 可能原因: 啥子问题?? 都是 jquery.js 文件.....

  4. scikit_learn,NLTK导入分类器相关流程命令

  5. Max answer(单调栈+ST表)

    Max answer https://nanti.jisuanke.com/t/38228 Alice has a magic array. She suggests that the value o ...

  6. Codeforces Round #485 (Div. 2)

    Codeforces Round #485 (Div. 2) https://codeforces.com/contest/987 A #include<bits/stdc++.h> us ...

  7. vcenter 不可访问虚拟机

    因为虚拟机找不到路径了,要么是删了,要么阵列顺序乱了什么的. 进入vsphere client: 储存器适配器里扫描一下,或者直接就已经识别了. 进入储存器里,全部扫描一下,或手动添加一下即可.

  8. 设计模式之jdk动态代理模式、责任链模式-java实现

    设计模式之JDK动态代理模式.责任链模式 需求场景 当我们的代码中的类随着业务量的增大而不断增大仿佛没有尽头时,我们可以考虑使用动态代理设计模式,代理类的代码量被固定下来,不会随着业务量的增大而增大. ...

  9. Jenkins+Gradle+Git自动打apk包,并上传到ftp

    软件安装: 1.安装Jenkins.git.AndroidSDK 2.配置AndroidSDK环境变量 ANDROID_HOME:D:\Androidsdk PATH:%ANDROID_HOME%\p ...

  10. C#使用CefSharp开源库开发Chrome 浏览器

    一.介绍        这个东西我以前没有接触过,但是公司项目里面有用到这个东西,所以就顺便研究一下.今天只是做了 WinForm 的测试,有时间了在试试 WPF 是如何实现的.刚开始一塌糊涂,有点麻 ...