Gym 101845(2018 ACM-ICPC, Universidad Nacional de Colombia Programming Contest)
Problem A
Problem B
分析:
暴力查找,由操作111,我们可以知道原串的第一位可以匹配结果串的每一位,所以O(n)\mathcal{O}(n)O(n)枚举对齐判断就好;由操作222,对于每一个对齐好的原串,我们要花最少次数变成答案串,我们可以确定一个位置,然后进行变换,这里有三种情况:
- 变选定位置和它的后一个位置
- 变选定位置和它的前一个位置
- 变选定位置和它的后一个位置,再变选定位置和它的前一个位置,即选定位置变了两次
接着根据递推关系把原串变了,在最后一次变换后判断可不可行,不同对齐的情况取min\text{min}min就好。
整体时间复杂度O(n2)\mathcal{O}(n^2)O(n2)
代码:
Code
Problem C
题意:
给你两个串str1str1str1和str2str2str2以及mmm种操作,对于第iii操作你可以花费costicost_icosti元,将字符cic_ici编程字符viv_ivi。现在问你将str1str1str1转化为str2str2str2的最小花费。
分析:
考虑将这mmm种操作的关系连边,并形成一个关系图。要想使得str1str1str1转化成str2str2str2的花费最少,显然是对于str1str1str1中的每一个跟str2str2str2不同的字符,我们要在关系图中找最小的花费。
因此这显然是一个多元最短路的问题,我们用Floyd\text{Floyd}Floyd即可。
代码:
Code
Problem D
题意:
给你一个有nnn个顶点的多边形,现在有mmm个点对(x,y)(x,y)(x,y),现在让你求出这mmm个点对中,xxx和yyy所夹的最大的突变型的面积。
分析:
首先,对于一个nnn边形,如果要求出他的面积,则我们可以把他划分成n−1n-1n−1个三角形,之后我们只需要用叉积的形式求出这n−1n-1n−1个三角形的面积即可。
而现在这个题目中,需要我们求mmm个由点对(x,y)(x,y)(x,y)围城的多边形,如果我们用上面的做法去做时间复杂度显然会达到O(nm)\mathcal{O}(nm)O(nm)。
但是我们发现,在我们求一个nnn边形的面积的时候,我们是采用将面积累加的形式,而由此,我们可以采用前缀和去优化。
我们设sum[i]\text{sum[i]}sum[i]为前iii个点所围成的多边形的面积,我们画一下图之后可以发现,点对(x,y)(x,y)(x,y)所围成的面积即为:sum[y-1]-sum[x]-(p[x] ˆ p[y]) \text{sum[y-1]-sum[x]-(p[x] \^ ~p[y]) }sum[y-1]-sum[x]-(p[x] ˆ p[y]) 。
代码:
Code
Problem E
题意:
给你一个边长为nnn的正三角形,正三角形的每条边都有n−1n-1n−1条线跟对应的边平行,且这n−1n-1n−1条线都是平分线。
现在问你,在这样的一个三角形中,有多少个点对(x,y)(x,y)(x,y),使得由他们组成的线段xyxyxy中,包含着点ccc,使得点ccc也是这个三角形的顶点。
分析:
因为nnn比较小,因此我们可以打表。显然我们可以把这个边长为nnn的(1+n)∗n2\frac{(1+n)*n}{2}2(1+n)∗n个顶点的坐标都表示出来,其次我们可以首先枚举线段的两个顶点x,yx,yx,y,再枚举第三个点zzz,判断是否存在一个点zzz在线段x,yx,yx,y中。
之后打表获取答案即可,打表的时间复杂度为O(n5)\mathcal{O}(n^5)O(n5),鉴于nnn还是比较小,还是可以在比较快的时间内得出答案的。
而这题也有时间复杂度为O(n2)\mathcal{O}(n^2)O(n2)的优秀算法,有时间再更新。
Problem F
题意:
有nnn支队伍,每个队伍有333个队员,每个队伍都有一个或多个擅长的领域(分别为A到Z)。而一个队伍最擅长的领域取决于他们中出现次数最多的(如果有多个则都是)。
现在规定,每个领域最多只能有kkk个队伍擅长,现在问你,最多有多少个队伍符合条件。
分析:
网络流的裸题。
我们考虑先让每个队伍跟他符合条件的领域连边。
因为每个领域最多只能有kkk个队伍擅长,因此,我们只需要对每个领域向超级汇点连接一条大小为kkk的边限流即可。
最后把超级源点都给每个队伍连一条大小为111的边作为流量,最后对这张图跑最大流即可。
代码:
Code
Problem G
分析:
先把每个字母的取和不取的概率算出来,要用到乘法逆元;接着进行dpdpdp,dp[i][j]dp[i][j]dp[i][j]表示到长度i时猜中到第jjj个的概率,最后将所有猜中到第mmm个的概率加起来就是答案。
复杂度O(n∗m)\mathcal{O}(n*m)O(n∗m)
代码:
Code
Problem H
温暖的签到题,只需要知道平年每过一年星期数+1,如果是闰年,过一年后星期数+2即可。
Code
Problem I
貌似是一个温暖的签到题,可能因为没有外榜大家都没有很快的ACACAC。
实质上只需要模拟一下二进制循环移位的过程就结束了。
Code
Problem J
题意:
有nnn个点,mmm条边。对于第iii条边,你可以从uiu_iui走到viv_ivi,花费cic_ici元,花费tit_iti时间。同时,你只能在时间sis_isi时候进行移动,且你只能在每si+fi、si+2∗fi…si+n∗fis_i+f_i 、s_i+2*f_i \dots s_i+n*f_isi+fi、si+2∗fi…si+n∗fi时刻进行移动。现在问你从111号结点走到nnn号结点的最少时间以及在此基础下的最小的花费。
分析:
虽然多了一个移动时间的限制,但是本质上还是一个最短路径的问题。
我们发现等待的过程可以分为两种:
- 当前的时间cur≤sicur\leq s_icur≤si
- 当前的时间cur>sicur > s_icur>si
对于第一种情况,我们显然只能等待到sis_isi时候后,再花费tit_iti的时间,故对于情况111,此时需要花费的累计的时间为cur=si+ticur=s_i+t_icur=si+ti
而对于第二种情况,要使的花费时间最小,我们必然想要等到一个最近的发车点,因此我们只需要获取需要等待的时间间隔cur−sifi+1\frac{cur-s_i}{f_i}+1ficur−si+1,并用这个间隔算出最终所需的时间。
而倘若解决了上诉时间问题,之后我们只需要利用所算出的时间进行松弛操作即可。
代码:
Code
Problem K
Problem L
分析:
构造题,对于一个边长为N=2nN=2^nN=2n的矩阵,我们可以每次对它一分为444,类似“田”字,然后查找哪个子矩阵有一个点被占用,即有被填过或为一开始的(x,y)(x,y)(x,y),然后在四个矩阵的交界处,填上一个LLL,这个LLL经过另外三个矩阵,这时候四个子矩阵都有一个点被占用了,接下来我们对子矩阵再进行同样的操作,直到矩阵不可再分。
最后填色,对你填LLL过程中的LLL打标记,最后%26\%26%26填字母就行,要说正确性,题目中2n2^n2n的矩阵,nnn最大才111111,你递归过程中,按顺序来,碰撞概率是极低的吧
复杂度O(N∗N)\mathcal{O}(N*N)O(N∗N)
代码:
Code
Problem M
分析:
一个比较简单的概率的问题……
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,b,k;
int main(){cin>>a>>b>>k;double ans=0;ll res=b-k+1;if (k>b) ans=1.0*b/k;else ans=1.0*((k-1)+1.0*res/(res+a))/k;printf("%.7f\n",ans);return 0;
}
转载于:https://www.cnblogs.com/Chen-Jr/p/11007148.html
Gym 101845(2018 ACM-ICPC, Universidad Nacional de Colombia Programming Contest)相关推荐
- 解题报告(一)F、(2018 ACM - ICPC shenyang I)Distance Between Sweethearts(数学期望 + 乘法原理 + FWT)(4.5)
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
- A - Multiplication Dilemma (思维)( 2018 ACM ICPC Arabella Collegiate Programming Contest)
滴答滴答---题目链接 Multiplication operation is not always easy! For example, it is hard to calculate 27 × 2 ...
- HDU 4069 Squiggly Sudoku(DLX)(The 36th ACM/ICPC Asia Regional Fuzhou Site —— Online Contest)...
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4069 Problem Description Today we play a squiggly sud ...
- 例题6-2 铁轨(Rails, ACM/ICPC CERC 1997, UVa 514)
栈应用 例题6-2 铁轨(Rails, ACM/ICPC CERC 1997, UVa 514) 错解 1.每次要把栈清空 2.不能用空的栈(栈顶)去比较 #include<iostream&g ...
- Codeforces gym 2013-2014 Samara SAU ACM ICPC Quarterfinal Qualification Contest
题目地址:http://codeforces.com/gym/100247 2014.10.27版 26号训练的题,今天发现A题有更高效的解法,用到了前缀最大值和后缀最大值 A. The Power ...
- 2016CCPC东北地区大学生程序设计竞赛 (2018年8月22日组队训练赛)
题目链接:http://acm.hdu.edu.cn/search.php?field=problem&key=2016CCPC%B6%AB%B1%B1%B5%D8%C7%F8%B4%F3%D ...
- Continuous Intervals Gym - 102222L(2018宁夏邀请赛暨2019银川icpc网络预选赛)
Lamis is a smart girl. She is interested in problems about sequences and their intervals. Here she s ...
- 《算法竞赛入门经典》习题4-2 正方形 (Squares,ACM,ICPC World Finals 1990,UVa201)——仅提供大体方法
原题及翻译 A children's board game consists of a square array of dots that contains lines connecting some ...
- 《算法竞赛入门经典》 习题 4-1 (Xiangqi, ACM/ICPC Fuzhou 2011, UVa1589,hdoj_4121)
原题: [hdoj链接](http://acm.hdu.edu.cn/showproblem.php?pid=4121) Problem Description Xiangqi is one of t ...
最新文章
- COM:细菌-真菌的平衡维持动植物健康
- 【学习笔记】JS进阶语法一DOM进阶
- [概述] SAP增强基本含义及分类
- 可视化:中国地图 python/ geopandas/ echarts
- Go支持自定义数据类型:使用type来定义,类似于数据类型的一个别名
- leetcode——面试题 17.10. 主要元素
- 《线性代数的几何意义》笔记(1)
- 网和aoe网的区别_运动内衣与普通内衣有什么区别?运动内衣里面还需要穿文胸吗? 小家生活网20201002 11:03:04...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 6_Logistic Regression 逻辑回归
- ubuntu虚拟显示器远程连接桌面方案
- 必须正视TD-SCDMA可能存在的重大技术错误(ZT)
- mysql创建用户并授权语句_MySQL创建用户与授权
- 洛谷:P1424 小鱼的航程(改进版) JAVA
- 境外IP判断一种实现方案
- 支付宝推“移动花卡”:花呗账单延后还
- linux 端口耗尽,短连接以致端口耗尽
- 皇氏集团迷途知返,但乳业市场还能接受它吗?
- Android SQLite在应用中数据保存查询,但是拷贝的xxx.db没有数据或没有更新,.db_wal和.db_shm文件
- 2021十大关键显示科技趋势
- python与室内设计_室内设计之3DMax软件的应用
热门文章
- Alibaba Cloud Linux 2.1903 LTS 64位服务器yum源下载404,Alibaba Cloud Linux 2实例中使用docker-ce、epel等YUM源安装软件失败
- 手动将jar包导入pom依赖,让jar包适配本地maven项目
- tableau问题汇总
- GPT-3 Finetune
- tf.variable_scope 参数
- OpenMP用法大全
- 汽车车灯灯具系统(上)
- 半导体群聚、虚拟垂直、整合
- Activity在有Dialog时按Home键的生命周期
- 2021年大数据Spark(四十三):SparkStreaming整合Kafka 0.10 开发使用