Shortest Path

 Accepts: 40
 Submissions: 610
 Time Limit: 4000/2000 MS (Java/Others)
 Memory Limit: 131072/131072 K (Java/Others)
问题描述
有一条长度为nn的链. 节点ii和i+1i+1之间有长度为11的边. 现在又新加了3条边, 每条边长度都是1. 给出mm个询问, 每次询问两点之间的最短路.
输入描述
输入包含多组数据. 第一行有一个整数TT, 表示测试数据的组数. 对于每组数据:

第一行包含2个整数nn和mm (1 \le n,m \le 10^5)(1≤n,m≤10​5​​)表示节点的数目和询问数目. 接下来一行包含66个有空格分开的整数a_1, b_1, a_2, b_2, a_3, b_3a​1​​,b​1​​,a​2​​,b​2​​,a​3​​,b​3​​ (1 \le a_1,a_2,a_3,b_1,b_2,b_3 \le n)(1≤a​1​​,a​2​​,a​3​​,b​1​​,b​2​​,b​3​​≤n), 表示新加的三条边为(a_1,b_1)(a​1​​,b​1​​), (a_2,b_2)(a​2​​,b​2​​), (a_3,b_3)(a​3​​,b​3​​). 接下来mm行, 每行包含两个整数s_is​i​​和t_it​i​​ (1 \le s_i, t_i \le n)(1≤s​i​​,t​i​​≤n), 表示一组询问.

所有数据中mm的和不超过10^610​6​​.
输出描述
对于每组数据, 输出一个整数S=(\displaystyle\sum_{i=1}^{m} i \cdot z_i) \text{ mod } (10^9 + 7)S=(​i=1​∑​m​​i⋅z​i​​) mod (10​9​​+7), 其中z_iz​i​​表示第ii组询问的答案.
输入样例
1
10 2
2 4 5 7 8 10
1 5
3 1
输出样例
7
/*
hdu 5636 搜索 BestCoder Round #74 (div.2) 给你一条链,每两个节点之间的距离是1,然后加上3条边。
m个询问,[l,r]之间的最短路 表示最开始想的是每个询问查找一次最小值,但是思路还是有问题,准确的说只有3
条捷径会对最后的答案造成影响。所以每次我们只需要枚举走过捷径的数目以及进入
的位置,找出最小值即可。 正解:
通过搜索,可以找出走3条捷径的所有情况,然后取出最小值即可 hhh-2016-03-05 21:43:51;
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <map>
#include <queue>
#include <algorithm>
using namespace std;
typedef long long ll;
#define LL(x) (x<<1)
#define RR(x) (x<<1|1)
#define MID(a,b) (a+((b-a)>>1))
const int maxn=100005;
const int MOD = 1e9+7; int tx[5],ty[5];
int vis[5],l,r;
ll ans ; void fin(int now,ll len)
{
if(len+abs(r-now)<ans) ans = (ll)(len+abs(r-now))%MOD;
for(int i =1;i <= 3;i++)
{
if(!vis[i])
{
vis[i] = 1;
fin(tx[i],abs(len+abs(ty[i]-now))+1);
fin(ty[i],abs(len+abs(tx[i]-now))+1);
vis[i] = 0;
}
}
} int main()
{
int t,n,q;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&q);
for(int i =1;i <= 3;i++)
{
scanf("%d%d",&tx[i],&ty[i]);
}
ll sum = 0;
for(int i =1;i <= q;i++)
{
scanf("%d%d",&l,&r);
ans = abs(l-r);
fin(l,0);
sum=(ll)(sum+(ll)(ans*i)%MOD)%MOD;
// cout << ans <<endl;
}
printf("%I64d\n",sum%MOD);
}
return 0;
}

  

hdu 5636 搜索 BestCoder Round #74 (div.2)的更多相关文章

  1. hdu5635 BestCoder Round #74 (div.2)

    LCP Array  Accepts: 131  Submissions: 1352  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: 13 ...

  2. hdu 5637 BestCoder Round #74 (div.2)

    Transform  Accepts: 7  Submissions: 49  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: 131072 ...

  3. BestCoder Round #74 (div.2)

    组合 1001 LCP Array 第一题就小难,出题的好像是浙大的大牛? 找到一个规律:a[i] = x, s[i..i+x]都想同.a[i] = a[i+1] + 1 (a[i] > 0), ...

  4. BestCoder Round #74 (div.1) 1002Shortest Path(hdoj5636)

    哈哈哈哈,我就知道这道题目再扔给我,我还是不会,就是这么菜,哈哈哈 一开始官方题解就没搞懂-然后就看了一下别人的代码,水水过就算了.今天拿到-GG: 题意: 一开始,有一张原图,有一条长度为n的链. ...

  5. HDU5638 / BestCoder Round #74 (div.1) 1003 Toposort 线段树+拓扑排序

    Toposort   问题描述 给出nn个点mm条边的有向无环图. 要求删掉恰好kk条边使得字典序最小的拓扑序列尽可能小. 输入描述 输入包含多组数据. 第一行有一个整数TT, 表示测试数据组数. 对 ...

  6. BestCoder Round #69 (div.2) Baby Ming and Weight lifting(hdu 5610)

    Baby Ming and Weight lifting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

  7. BestCoder Round #68 (div.2) tree(hdu 5606)

    tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  8. hdu5634 BestCoder Round #73 (div.1)

    Rikka with Phi  Accepts: 5  Submissions: 66  Time Limit: 16000/8000 MS (Java/Others)  Memory Limit: ...

  9. BestCoder Round #11 (Div. 2) 前三题题解

    题目链接: huangjing hdu5054 Alice and Bob 思路: 就是(x,y)在两个參考系中的表示演全然一样.那么仅仅可能在这个矩形的中点.. 题目: Alice and Bob ...

随机推荐

  1. 吝啬的国度 nyoj

    吝啬的国度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市, ...

  2. C语言使用vs2013进行编辑

    由于vs2013是微软开发的产品所以在windows平台下无限兼容windows所有虽然比较大,但是还是比较值得 但是在运行C程序的遇到问题就是控制台一闪而过通过ctrl+F5执行也是不管用: #in ...

  3. Linq 连接运算符:Concat

    //Concat()方法附加两个相同类型的序列,并返回一个新序列(集合)IList<string> strList = new List<string>() { "O ...

  4. C# 解析json数据出现---锘縖

    解析json数据的时候出现 - 锘縖,不知道是不是乱码,反正我是不认识这俩字.后来发现是json的 '[' 字符转换的 网上搜了一下,说的是字符集不匹配,把字符集改为GB2312. 一.贴下处理jso ...

  5. C#微信公众号开发——错误一

    一.网站发布后,运行报如下错误

  6. python Flask

    python Flask Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请 ...

  7. django Form组件 上传文件

    上传文件 注意:FORM表单提交文件要有一个参数enctype="multipart/form-data" 普通上传: urls: url(r'^f1/',views.f1), u ...

  8. python--IO模块

    IO模块 一 IO模型 分为: 1 阻塞IO (accept recv) 2 非阻塞IO 3  IO多路复用(监听多个链接) 4 异步IO 5 驱动信号模型(不经常使用) 1 阻塞IO (blocki ...

  9. python基础——面向对象进阶下

    python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...

  10. spark2.1:flatMap的用法

    代码示例: val sample_data_combine_result=List( (0,(List(FitModel(4022,1447.92,-8.38983306721434,2.0)),1) ...