2017 SWERC
2017 SWERC
A:Cakey McCakeFace
题目描述:有一个炉每次只能放一个蛋糕,炉的进口和出口各放了一个探测器,当放蛋糕进去时,进口的探测器会记录时刻,当蛋糕做好后,蛋糕从出口出来,出口探测器会记录时间,每个蛋糕做好的时间是一样的。现在探测器坏了,即没有探测到蛋糕也可能会记录时间,探测到蛋糕也可能不记录时间。现在给出进口探测器记录的时刻,以及出口探测器记录的时刻。问蛋糕做好的时间最有可能是多少,即使其满足的记录最多。
solution
将出口时刻与进口时刻两两相减,看哪个时间最多即可。
时间复杂度:\(O(n^2)\)
B:Table
题目描述:给出一个\(R \times C\)的网格图,其中有些格子被涂成黑色,现在有一些询问\(x, y\),问网格图中有多少个\(x \times y\)的长方形,满足长方形内没有黑色的格子,且长方形的边与网格线重合。
solution
待解决。
C:Macarons
题目描述:有一个\(n \times m\)的网格,有\(1 \times 1, 1 \times 2, 2 \times 1\)三种规格的砖块,问有多少种方案填满这个网格。
solution
状压\(dp\)+矩阵乘法。
时间复杂度:\(O((2^n)^3logm)\)
D:Candy Chain
题目描述:有一个字符串\(candy\),以及\(n\)个单词\(word[i]\),每个单词都有一个对应的价值。现在字符串中删掉一些单词,删掉后就能得到相应的价值。字符串删掉一个单词后,字符串会连起来构成一个新的字符串。删单词时,不仅可以删掉原单词,还可以删掉原单词翻转形成的单词。问最多能得到多少价值。
solution
\(dp\)。单词翻转的问题相当于添加\(n\)个翻转后的单词。\(f[i][j][all][k][p]\)表示处理字符串中\([i, j)\)这段区间,是否需要全部消掉(\(all\)是\(true\)时为需要全部删掉,反之不需要),单词\(k\)的区间\([0, p)\)已经在字符串的\([0, i)\)中匹配,得到的最多价值。
- 若\(candy[i]==word[k][p]\),则搜索状态\(f[i+1][j][all][k][p+1]\)。
- 若\(word[k]\)已经匹配完,则返回。
- 设\(q \in [i+1, j]\), 表示\([i, m)\)全部删去,则搜索\(f[i][m][true][0][0]\)以及\(f[m][j][all][k][p]\)。
时间复杂度:\(O(len^3n)\)
E:Ingredients
题目描述:给出一个菜谱路线(有向无环图),每种菜的花费以及价值为这种菜所依赖的菜的花费和以及价值和。最终的菜单中每种菜只能出现一次,问在总花费不超过\(B\)的前提下,价值和最大是多少。
solution
跑一遍\(DAG\),求出每种菜最终需要的费用以及价值。然后做背包。
时间复杂度:\(O(nB)\),\(n\)为实际有多少种菜。
F:Shattered Cake
题目描述:有一个长方形,被切成很多个长方形,给出小长方形的长和宽,以及原来长方形的长,求原来长方形的宽。
solution
模拟。
时间复杂度:\(O(n)\)
G:Cordon Bleu
题目描述:有\(m\)个骑手,\(n\)支酒,饭店安排一些骑手去拿酒然后会饭店,若骑手拿酒的数目多于\(1\),则除了第一支酒外,其它酒拿酒时由饭店出发。拿酒的总费用等于骑手走过的距离,而骑手两点之间走哈密顿距离。给出每个骑手的初始坐标以及酒的坐标和饭店坐标,求最少费用。
solution
二分图最大权匹配。二分图右边为酒,左边为骑手和\(n-1\)个饭店,这样就能保证一定有一个骑手从初始点出发,若匹配到饭店,则是从饭店出发,而从饭店出发的不用管是哪一个骑手。
时间复杂度:无法估计。
H:Kabobs
题目描述:有一个字符集以及\(n\)个规则。现在要构造一个长度为\(m\)的字符串,字符串只能由给定的字符集构成,并且要满足那\(n\)个规则。每个规则是这样的:有两个字符串\(A, B\)。若构成的字符串存在子串\(A\),则\(A\)的后面(不一定要紧接着)一定要有\(B\)。求能构造多少个字符串。
solution
按照规则构造自动机,按照题解的说法,状态数不会超过\(3 \times 10^6\)。
时间复杂度:\(O(3 \times 10^6)\)
I:Burglary
题目描述:有\(n\)层书架,每个书架有\(m\)格,书架上有些格子有钱,相邻两层之间有一些梯子相邻。现在有一个小偷从第一层书架出发偷钱,每个放钱的位置小偷至多会经过一次,最后小偷会回到第一层,而且小偷只能先一直向下走,然后一直向上走。问小偷最多能偷多少钱。
solution
设\(f[i]\)表示小偷下到第\(i\)层然后向上走。\(g[i][x][y]\)表示在\(x\)下楼梯到第\(i\)层,在\(y\)上楼梯回去的最大值。预处理\(grab[i][x][y]\)表示在\(x\)下到第\(i\)层后走一遍第\(i\)层,在\(y\)回去的最大值。则\(f[i]=max(g[i][x][y]+grab[i][x][y])\),答案为\(max(f[i])\)
\(g[i][x][y]\)可以由\(g[i-1][x'][y'], grab[i-1][x][x'], grab[i-1][y'][y]\)算出,但中间会有很多细节,还没码,不太清楚。。。
时间复杂度:\(O(nL^4)\), \(L\)为每层楼梯数。
J:Frosting on the Cake
题目描述:有一个不均等的网格图,然后从左到右从上到下依次交替涂上白、黄、红色。问最终每种颜色的总面积。
solution
模拟。
时间复杂度:\(O(n)\)
K:Blowing Candles
题目描述:给出二维平面上的\(n\)个点,求宽度为\(w\)的平行线,使得所有点在平行线内,求出最小的\(w\)。
solution
求凸包,旋转卡壳求\(w\)。
时间复杂度:\(O(n)\)
2017 SWERC的更多相关文章
- 2017-2018 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2017)
A. Cakey McCakeFace 按题意模拟即可. #include<stdio.h> #include<iostream> #include<string.h&g ...
- CI Weekly #10 | 2017 DevOps 趋势预测
2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ...
- 猖獗的假新闻:2017年1月1日起iOS的APP必须使用HTTPS
一.假新闻如此猖獗 刚才一位老同事 打电话问:我们公司还是用的HTTP,马上就到2017年了,提交AppStore会被拒绝,怎么办? 公司里已经有很多人问过这个问题,回答一下: HTTP还是可以正常提 ...
- iOS的ATS配置 - 2017年前ATS规定的适配
苹果规定 从2017年1月1日起,新提交的 app 不允许使用NSAllowsArbitraryLoads来绕过ATS(全称:App Transport Security)的限制. 以前为了能兼容ht ...
- 深入研究Visual studio 2017 RC新特性
在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ...
- Xamarin+Prism开发详解三:Visual studio 2017 RC初体验
Visual studio 2017 RC出来一段时间了,最近有时间就想安装试试,随带分享一下安装使用体验. 1,卸载visual studio 2015 虽然可以同时安装visual studio ...
- Microsoft Visual Studio 2017 for Mac Preview 下载+安装+案例Demo
目录: 0. 前言 1. 在线安装器 2. 安装VS 3. HelloWorld 4. ASP.NET MVC 5. 软件下载 6. 结尾 0. 前言: 工作原因,上下班背着我的雷神,一个月瘦了10斤 ...
- Create an offline installation of Visual Studio 2017 RC
Create an offline installation of Visual Studio 2017 RC 2016年12月7日 ...
- .NET Core 2.0版本预计于2017年春季发布
英文原文: NET Core 2.0 Planned for Spring 2017 微软项目经理 Immo Landwerth 公布了即将推出的 .NET Core 2.0 版本的细节,该版本预计于 ...
随机推荐
- 秒杀多线程第七篇 经典线程同步 互斥量Mutex(续)
java使用Synchronized关键字实现互斥,而同时有Lock支持. 这两个的效果是等同的,Synchronized性能的起伏较大,而lock比较收敛. 为了代码的可读性,Synchronize ...
- click()、bind()、live()和delegate()方法
我之前使用click()比较多,又来因为网页内容需要前端生成用了live().有的时候使用click()和bind()分不清楚该怎么试用.查了很多资料.测试了很多次,自己明白了. 总结如下:代码注释很 ...
- MySQL事务提交过程
一.MySQL事务提交过程(一) MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中.今天我们来讨论下事务的提交过程. 由于mysql插件式存储架构,导致开启binlog后,事务提交实 ...
- 【Socket】从零打造基于Socket在线升级模块
一.前言 前段时间一直在折腾基于Socket的产品在线升级模块.之前我曾写过基于.Net Remoting的.基于WCF的在线升级功能,由于并发量较小及当时代码经验的不足一直没有实际应用. ...
- 【Visual Installer】如何读取与写入注册表信息
引入:using Microsoft.Win32; (1)读取注册表信息 代码: RegistryKey rsg = null; rsg = Registry.LocalMachine.OpenSub ...
- 【LOJ6436】【PKUSC2018】神仙的游戏(NTT)
[LOJ6436][PKUSC2018]神仙的游戏(NTT) 题面 LOJ 题解 看到\(zsy\)从\(PKUSC\)回来就秒掉了这种神仙题 吓得我也赶快看了看\(PKUSC\)都有些什么神仙题 然 ...
- Unity3D for VR 学习(7): 360°全景照片
在VR应用中,有一个相对简单的虚拟现实体验,那就是360°全景照片浏览器, 他可以使得手机拍照的”全景”照片, 得以”恢复”当时拍照的场景全貌, 这个创意的确比单纯的2d图片更有震撼力一些,故本文 ...
- 第一个python教程(1)
使用文本编辑器 在Python的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍. 所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完了,保存为 ...
- 【Python3的命名空间与作用域,闭包函数,装饰器】
一.命名空间与作用域 命名空间是名字和对象的映射,就像是字典,key是变量名,value是变量的值 1.命名空间的定义 name='egon' #定义变量 def func(): #定义函数 pass ...
- 9.Android UiAutomator正则表达式的使用
一.正则表达式元字符: 1.一些常用元字符: 元字符 描述 . 表示任意一个字符 \s 空格字符(空格键.tab.换行.换页.回车) \S 非空字符串([^\s]) \d 一个数字(相当于[0-9]中 ...