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. Python中int()函数的用法浅析

      int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int)  Help on class int in module __builti ...

  2. 转:python的nltk中文使用和学习资料汇总帮你入门提高

    python的nltk中文使用和学习资料汇总帮你入门提高 转:http://blog.csdn.net/huyoo/article/details/12188573 nltk的安装 nltk初步使用入 ...

  3. 解题:POI 2009 TAB

    题面 这也算是个套路题(算吗)?发现换来换去每行每列数的组成是不变的,那么就把每行每列拎出来哈希一下,复杂度$O(Tn^2log$ $n)$有点卡时=.=. 然而正解似乎不需要哈希,就像这样↓ ;i& ...

  4. c++ 智能指针(转)

    智能指针的使用 智能指针是在 <memory> 标头文件中的 std 命名空间中定义的. 它们对 RAII 或“获取资源即初始化”编程惯用法至关重要. 此习惯用法的主要目的是确保资源获取与 ...

  5. 玲珑学院oj 1152 概率dp

    1152 - Expected value of the expression Time Limit:2s Memory Limit:128MByte Submissions:128Solved:63 ...

  6. 洛谷P1637 三元上升子序列

    P1637 三元上升子序列 48通过 225提交 题目提供者该用户不存在 标签云端 难度提高+/省选- 时空限制1s / 128MB 提交  讨论  题解 最新讨论更多讨论 为什么超时啊 a的数据比较 ...

  7. Linux常用网络工具:fping主机扫描

    Linux下有很多强大网络扫描工具,网络扫描工具可以分为:主机扫描.主机服务扫描.路由扫描等. fping是一个主机扫描工具,相比于ping工具可以批量扫描主机. fping官方网站:http://f ...

  8. clinical significance临床显著性

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  9. 查看MySQL日志数据binlog文件

    binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...

  10. 前端PHP入门-034-Session技术-掌握级别

    而Session是通过将数据保存在服务器端来实现保持连接的.我们通过一个例子来了解session的机制. 我们去饮料店买饮料,下单以后服务员会给我们一个号码牌,然后你走到一旁,服务员并不认识你是谁,如 ...