这题一开始没看清楚

等级差距不超过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. 【题解二连发】Construct Binary Tree from Inorder and Postorder Traversal & Construct Binary Tree from Preorder and Inorder Traversal

    LeetCode 原题链接 Construct Binary Tree from Inorder and Postorder Traversal - LeetCode Construct Binary ...

  2. IDEA 对比eclipse环境调节

    小子刚刚接触Intellij IDEA,以前用的都是eclipse.鉴于ieda的火热,开始学习之旅.本文会随时更新,记载idea中的一些调节方法,尽量在环境的配置上跟eclipse接近些. 在此感谢 ...

  3. “菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)

    既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西,自己通过理解,画个图,来看看.NET的沉鱼落雁,闭月羞花之容. 最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基 ...

  4. jsp2

    jsp:实现了静态html中,插入了动态的代码 servlet:动态代码中,插入静态html (jsp代码) <%@ page language="java" content ...

  5. SpringCloud微服务基础

    1.传统项目架构  传统项目分为三层架构,将业务逻辑层.数据库访问层.控制层放入在一个项目中.适合于个人或者小团队开发,不适合大团队开发. 2.分布式项目架构(解耦方案) 根据业务需求进行拆分成N个子 ...

  6. 48-设置tomcat虚拟路径的两种方法(Eclipse、tomcat、IDEA)

    设置tomcat虚拟路径的两种方法(Eclipse.tomcat.IDEA) 三种方式设置虚拟服务器路径如果我们要实现一个上传文件的功能,但是又想要上传的文件不会随着自己web服务器的重启而不能访问了 ...

  7. eclipse Filter web.xml 问题解决 异步请求@WebServlet

    <filter> <filter-name>AsynServlete</filter-name> <filter-class>com.kad.app.a ...

  8. 检查手机是否安装外置SD卡

    /** * 检测是否安装外置SD卡 * * @return */ public boolean checkSDcard() { StorageList list = new StorageList(t ...

  9. 判断作业完成之 读取log 脚本

    tail 用于读取文件末尾 -n 后边加行数 -f 为持续追踪,实时输出 NUMECA 输出最后两行 ...done in 727.84-sec (STARTING NUMECA FLOW SOLVE ...

  10. sqlserver全文检索

    转载地址:https://www.cnblogs.com/qianzf/p/7131741.html