ACM ICPC Kharagpur Regional 2017

A - Science Fair

题目描述:给定一个有\(n\)个点,\(m\)条无向边的图,其中某两个点记为\(S, T\),另外标记\(p\)个点表示有一个学生。现在校车从\(S\)出发,接名单上的学生到\(T\),每个学生等概率地出现在名单上,当校车经过某个有学生的点时,不管名单上有没有那位学生,那位学生也会上车。每个学生有一个\(talk\)值,校车完成任务的花费为:到\(T\)时实际学生的\(talk\)值的乘积模\(10^9+7\)与路径长度的和。对于每一个名单,校车会选最小花费来走,求期望花费。

solution
求出\(p\)个点两两之间不经过其它\(p\)点的最短距离,以及与\(S, T\)的距离(不经过其它\(p\)点),然后状压求出到达\(T\)时有\(sett\)这些学生的最短距离。然后状压\(dp\)求出接\(sett\)这些学生时的最小花费。

时间复杂度:\(O(2^p*p+p^p*m)\)

B - Black Discs

题目描述:给出\(n\)个直径在\(x\)轴上的半圆(半圆在\(x\)轴上方),每次询问给出一个在在第一象限的圆,问该圆与半圆的面积交。

C - Uniform Strings

题目描述:给出一个\(01\)串,求出相邻字符不同的个数,判断是否不超过两个。

solution
模拟。

时间复杂度:\(O(串长度)\)

D - SAD Queries

题目描述:给定\(K\)个序列,每次询问指定两个序列\(P, Q\),求\(\sum_{i=1}^{p} \sum_{j=1}^{q} |P_i-Q_j|\)

solution
暴力,每次询问枚举较短的序列,二分较长序列。

时间复杂度:不会算

E - Chef and XOR Queries

题目描述:给定一棵树,边上有边权(未知)。有两种操作:1. 给定\(x, y, v\),判断按照已知信息\(x\)到\(y\)的简单路径的\(XOR\)是否可能是\(v\),如果是则\(XOR\)值视为\(v\),否则输出'WA', 2.询问\(x, y\)简单路径的\(XOR\)值,或者未知输出\(-1\)。

solution
树的形状是没有用的,用带权并查集记录每个点到并查集的根的\(XOR\)值,操作\(1\)相当于是并查集的合并。

时间复杂度:\(O(Q+n)\)

F - Taxi Making Sharp Turns

题目描述:给出\(n\)条首尾相连(第一条与最后一条不连)的线段,从第一条线段的无连接一端出发走到最后,问走的过程中拐角是否有超过\(45^{\circ}\),若有,则问是否能通过改变一点的坐标使得不存在拐角超过\(45^{\circ}\).

solution
模拟。

G - Spam Classification Using Neural Net

题目描述:给出\(n\)条直线的斜截式方程,给定一个区间\([minX, maxX]\),将区间里的每个整数点进行操作:将\(x\)代入第一条直线,得到的结果作为\(x\)代入第二条直线,以此类推。问最后的结果是否都是偶数。

solution
结果的奇偶性至于初始值的奇偶性有关,把\(0, 1\)带进去算一下即可。

时间复杂度:\(O(n)\)

H - Non Overlapping Segments

题目描述:有\(n\)条在\(x\)轴上的线段,每条线段的长度都是\(R\),左端坐标为整数\(x_i\),现在要将这些线段移到\([0, L]\)(整条线段都要在里面),问最少移动多少条线段。

solution
将线段按\(x_i\)排序。记\(f[i][j]\)表示前\(i\)条线段有\(j\)条没动能放多少条线段进来。枚举前一条线段\(k\),则\(k, i\)之间能放\(\frac{x_i-(x_k+R)}{R}\)条线段。如果\(j+f[i][j] \geq n\),则用\(n-j\)更新答案。

时间复杂度:\(O(n^3)\)

I - Spanning Tree

题目描述:有一个\(n\)个点的图,边权未知,每次可以选择\(A, B\)两个点集,询问\(A, B\)之间的边的最小值,系统会返回边的最小值以及该边的两个端点,或是不存在。求出该图的最小生成树的边权和。每次询问的花费为\(|A|\),总花费不能超过\(10^4\),\(|A|+|B|\)不能超过\(2*10^6\).

solution
用并查集维护连通性。每次找出最小的并查集\(A\),询问\(A, A\)的补集,得到的回答就是生成树上的一条边。

时间复杂度:\(O(nlogn)\)

J - Generating A Permutation

题目描述:给定\(n, K\),找出一个\(n\)排列,满足\(\sum_{i=2}^{n} max(p_i, p_{i-1})=K\),输出这个排列,或无解。

solution
以\(n=5\)为例:
54321最小为\(14\)
35241最大为\(18\)

显然,递减地排是最小的,从第\(2\)位开始隔一个放最大的数是最大的。以此来判断无解。
设最小值为\(minv, k-=minv\),用数组\(cnt\)记住每个数对答案的贡献,开始时除了\(1\)每个数对答案的贡献都是\(1\),\(i\)指向\(n\),\(j\)指向\(2\),若\(k \geq i-j\),则\(i\)的贡献加\(1\),\(j\)的贡献减\(1\),而一个数的贡献最多为\(2\),所以\(i--, j++\);否则\(j++\)
算出每个数的贡献后就往排列填数即可。

时间复杂度:\(O(n)\)

K - Number Game

题目描述:给定两个数\(A, M\)。开始时从\(A\)中移除一个数字(\(A\)不变)得到\(B\),然后进行若干次操作:每次从\(A\)中移除一个数字(\(A\)不变)得到\(C\),将\(C\)连到\(B\)的后面,得到新的\(B\)。问开始时有多少种移除方式,使得之后进行若干次操作后得到的数是\(M\)的倍数。

solution
把每种移除方式得到的数模\(M\)的值算出来,然后爆搜(\(bfs\))得出每种模值是否能最终变成\(0\)

时间复杂度:\(O(M^2)\)

ACM ICPC Kharagpur Regional 2017的更多相关文章

  1. 2017 ACM/ICPC Asia Regional Shenyang Online spfa+最长路

    transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 132768/1 ...

  2. 2017 ACM ICPC Asia Regional - Daejeon

    2017 ACM ICPC Asia Regional - Daejeon Problem A Broadcast Stations 题目描述:给出一棵树,每一个点有一个辐射距离\(p_i\)(待确定 ...

  3. 2017 ACM/ICPC Asia Regional Qingdao Online

    Apple Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submi ...

  4. Problem 1002-2017 ACM/ICPC Asia Regional Shenyang Online

    网络赛:2017 ACM/ICPC Asia Regional Shenyang Online 题目来源:cable cable cable Problem Description: Connecti ...

  5. hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Ot ...

  6. hduoj 4708 Rotation Lock Puzzle 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4708 Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/O ...

  7. hduoj 4715 Difference Between Primes 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4715 Difference Between Primes Time Limit: 2000/1000 MS (J ...

  8. hduoj 4712 Hamming Distance 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...

  9. hduoj 4706 Herding 2013 ACM/ICPC Asia Regional Online —— Warmup

    hduoj 4706 Children's Day 2013 ACM/ICPC Asia Regional Online —— Warmup Herding Time Limit: 2000/1000 ...

随机推荐

  1. 关于setInterval()定时

    最近项目中,遇到个需求就是获取停车场剩余车位数量,想是通过ajax定时抓取接口数据来实现(本想通过SignalR),但是项目本身直供少数人使用,感觉定时ajax可以满足 下面上代码 var handl ...

  2. vue使用过程中的一些小技巧

    这些也是自己平时项目中遇到过的一些问题,看到有人整理了出来,也就转载保存一下 文章内容总结: 组件style的scoped Vue 数组/对象更新 视图不更新 vue filters 过滤器的使用 列 ...

  3. Django之CSS,JS静态文件的配置

    一. 专门创建一个目录放静态文件,即CSS,JS等. 1)先把jquery.min拿过来. 2)新建一个CSS文件放入样式 3)在login.html中引入.css文件 在login.html中引入. ...

  4. 两种方法实现TAB菜单及文件操作

    1,自定义属性的方法实现----TAB菜单操作 cursor:pointer; 鼠标的小手 <!DOCTYPE html> <html lang="en"> ...

  5. Redis安装与配置Redis安装与配置

    今天在使用Redis的时候遇到了一些问题,这个问题的解决,发现很多人使用Redis的时候没有一点安全意识.所以又重温了一下Redis,觉得应该写一下Redis的安全和配置. Redis安装与配置Red ...

  6. Middle of Linked List

    Find the middle node of a linked list. Example Given 1->2->3, return the node with value 2. Gi ...

  7. git使用笔记(十三)ls-files

    By francis_hao    Mar 18,2018   git ls-fles 显示index和工作区的文件的信息. 概要 git ls-files [-z] [-t] [-v]        ...

  8. Hdu5226 Tom and matrix

    Tom and matrix Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  9. VLFeat在matlab和vs中安装

    转:http://blog.csdn.net/u011718701/article/details/51452011 博主最近用vlfeat库做课题,网上搜索使用方法,一大片都会告诉你说:run(/v ...

  10. 前端PHP入门-035-Session的实例

      登陆例子:(请注意一定要自己敲一遍,不要CV大法) 首先上一下成果图,激起同学们写的欲望,登录页如下: 点击登陆之后如下: 说明哦了,么问题.接下来自己实现一下. 首先数据库信息: 新建一个名为 ...