2019组队赛第二场(ACM International Collegiate Programming Contest, Arabella Collegiate 解题报告

by xzc,zx,lj


先扔一个codeforces链接
vj链接:CCNUACM Team Contest 2019 Round #2
这次比赛我们队(zx,lj,xzc)出了8个题,还是挺好的

A. Multiplication Dilemma
题意:
定义漂亮数为满足这样条件的整数x:

现在给你一个a x b(1e9<=a,b<=1e9),比如17 x 20,你要把它拆成若干个“漂亮数”的乘积之和。
样例:

input
2
55 20
70 17
output
60 x 20 - 5 x 20
-3 x 70 + 70 x 20

思路:
按数位展开,然后两重for输出即可
例如12345 * 789 = (10000+2000+300+40+5) * (700+80+9)
然后展开即可。

我们的代码<-(点这里)


B. Updating the Tree
全场没人出,先不写了
可能以后会补题吧 应该不会了,补了题再来更新
loading…


C. Shortest Path!
分析:
题意都懒得说了,不是最短路,就是个将军饮马问题+勾股定理
lj推出公式以后,我敲上去,一发过(我们好像除了签到题D题和和E题读错题意剩下好像都是一发过)

我们的代码


D. Wooden Fence
签到题
题意:
给栅栏涂色,有n段(n为奇数),必须黑白相间,而且必须先涂黑色(第一发wa在了这里),黑油漆能涂x段,白油漆能涂y段,问能不能涂完n段?
分析:
只要满足x > floor(n/2) 且 y >= floor(n/2)即可

我们的代码


E. Stupid Submissions
没有细看题,队友做的,大致是模拟codeforces判题吧。我们题意读错了好久,不过最后还是AC了
分析:
这道题我们最初读错题认为WA的是小样本就计数,没搞清k是干什么的。
正确题意应该是给出测试数n、提交数m、初始可见样本范围k(1-k为可见样本),而可见样本中只有小样本能看见全部测试数据。
若WA在可见的小样本则定义为愚蠢提交,输出愚蠢提交数。
搞明白题意就很暴力地模拟一下就好啦。
两个注意点是:

  1. 如果WA在第x个样本,无论样本是大是小都更新k=x;
  2. AC之后全部错误提交小样本都是愚蠢的。

我们的代码


F. I’m Bored!
题意:
大致是有个人有好多卡片,每个卡片上都有一个英文的小写字母,现在他可以用这些卡片拼成若干个回文串,其中每个回文串中相同的英文字母出现次数不能超过2,求能拼成的最长的回文串的长度,以及这么长的回文串能拼出几个?

分析:

  • 这道题先找最长串,若某个字母出现次数仅为1,不难得出最长串必为奇数,记这样的字母个数为one。
  • 某个字母出现次数>=2,则它必定成对出现在最长串中,记这样的字母个数为K,将每个>=2的字符都/2,计算然后求最小值min。
  • 若one不为0,则x=2*k+1,y为min与one中较小者;否则,x = 2 * k,y=min;
    (我们队w了一发,因为太粗心没有初始化x,y。)

我们的代码


G. Minimax
题意:
这题是给一个矩阵,在矩阵中找一个点,横向纵向各切一刀,把矩形分割成4份,令x = 4个部分的最大值中最大的减去最小的差,求x的最小值
这道题zx写的二维前缀和
分析:

  • 这道题很暴力地存了四个二维数组:从左上右上左下右下四个方向出发到(i,j)的方块内的最大值。
  • 遍历分割线,分别取四个方块从各自方向出发得出的二维数组在(i-1,j-1)(i-1,j+1)(i+1,j-1)(i+1,j+1)的值,就能求差啦~

我们的代码


H. Beautiful Substrings
题意:
有a,b两个字符串,给定K,取出a中所有长度为K的子串,找出这些子串的首尾head和tail,问在b中有多少序列可以和这些首尾匹配?
分析:

  • 先处理a串,把所有的head和tail记录下来,然后去重(我用的vector<<pair<int,int> >)
  • 再处理b串,把每个字母出现过的位置都存到相应的vector里
  • 然后对去重后的每个pair(head,tail), 在head的vector里面枚举head对应的字母出现的位置,然后在tail对应的字母的vector里面二分查找在这个位置后出现的tail的个数
//我觉得这波操作是真的6,越来越喜欢用vector了
int solve(int head,int tail,vector<int>& h,vector<int>&t)
{int ans =0;for(auto &x:h)ans += t.end() - upper_bound(t.begin(),t.end(),x);return ans;
}
  • 有个要注意的地方,就是如果head==tail,那么一个字母也可以匹配上,要在答案上加上b串中这个字母的个数(队友厉害)

我们的代码


I. Secret Project
应该是个组合数学,没有碰那道题


J. Even Numbers
题意:
求杨辉三角第i行偶数的个数
这题zx很早就打表看出了每行奇数的个数是一个嵌套的等比数列,但是不好写,可能可以递归吧。后来最后我们知道了一个结论:第i行奇数的个数就是2的i的二进制位数次幂
上队友补了题的代码:
这是lj的~
这是zx的~
温馨提示队友们:题目没有让取模,答案也肯定没有爆long long, 所以求2的cnt次幂的时候不用for一遍或者预处理了,直接上位操作(1ll << cnt)搞定~


K. Cyclic Shift
题意:
两个字符串,如果原本就相同或者把其中一个字符串的一个子序列循环右移一位后两个字符串相同,则输出yes,否则输出no

我们的代码


2019/3/18

2019组队赛第二场(ACM International Collegiate Programming Contest, Arabella Collegiate 解题报告 Apare_xzc相关推荐

  1. 2015 ACM Arabella Collegiate Programming Contest(F题)

    F. Palindrome [ Color: Pink ] A string is palindrome if it can be read the same way in either direct ...

  2. 2019 浙江省赛部分题解(The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple)

    签到题 GLucky 7 in the Pocket Time Limit: 1 Second      Memory Limit: 65536 KB BaoBao loves number 7 bu ...

  3. 2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program

    2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program 题目链接 The kingdom of Z ...

  4. 「团队训练赛」The 14th Jilin Provincial Collegiate Programming Contest「ABCEFGJLM」

    The 14th Jilin Provincial Collegiate Programming Contest A. Chord 题目描述: 给出C, C#, D, D#, E, F, F#, G, ...

  5. 2015 German Collegiate Programming Contest (GCPC 15)

    2015 German Collegiate Programming Contest (GCPC 15) B. Bounty Hunter II 给定一张DAG,求一种方案:用最少的路径将所有点覆盖. ...

  6. 2016-2017 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2016)题解

    2016-2017 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2016) A - Artwork 题目描述: 给定N*M的网格,给出Q次 ...

  7. The 15th Heilongjiang Provincial Collegiate Programming Contest题解 gym102803

    The 15th Heilongjiang Provincial Collegiate Programming Contest题解 gym102803 前言 题目 A. August B. Bills ...

  8. Nordic Collegiate Programming Contest 2017 题解

    前几天打了一场外国人的比赛,感觉那边的题目质量还是很好的,区分度很鲜明,题目没有国内的难,坑点比较少,比较注重思维,基础算法. B题: Best Relay Team Picture by Ferna ...

  9. 2015 HIAST Collegiate Programming Contest J

    Polygons Intersection 题意:给2个凸多边形,求相交面积 思路:不会,套板子就是了 AC代码: #include "iostream" #include &qu ...

最新文章

  1. plsql误删除数据,提交事务后如何找回?
  2. java上传图片报404_ssm框架上传图片成功后跳转jsp页面显示却404访问不到图片
  3. 相关及其快速算法的C++实现
  4. 信息系统项目管理师考试时间安排
  5. 多维数组(冒泡排序,稀疏数组)
  6. 22行代码AC_Prime Number Aizu - 0009(素数筛)(解题报告)
  7. Markdown编辑器模板
  8. 手机modem开发(5)---LTE基本架构
  9. WPF: 本地化(Localization) 实现
  10. 对讲机怎么用_对讲机防水透气解决方案是怎么做的?
  11. codeblocks解决网络方面错误undefined reference to `inet_ntoa@4'|
  12. 华为杯数学建模竞赛E题
  13. delphi读音_用Delphi 6编程实现自动标注汉语拼音_Delphi
  14. 免苹果开发者账号申请iOS上架及证书打包ipa测试(2022最新详解)
  15. 猎头是怎么找到合适候选人的?
  16. 写字楼如何实现无线wifi短信验证登录?
  17. python 背景音乐程序代码_python 喜马拉雅 音乐下载 演示代码
  18. 网络空间安全---计算机网络安全概述
  19. VS提示LNK1181,无法打开XXX.lib
  20. 书法 | 从零学硬笔,我的三天成长路

热门文章

  1. Android互动直播APP开发入门笔记,吐血整理
  2. STM32f429 CubeMx FreeRTOS emWin (Cubemx有BUG)
  3. 计算机应用基础操作题答案,电大本科计算机应用基础网考操作题及答案
  4. 在windows中要使用计算机进行高级,2017年电大计算机上机操作题(带答案)
  5. 5G-NR非连续接收DRX参数配置详解
  6. Abaqus安装CAE报错Regview解决方法
  7. python照片查重_Python 进行excel查重
  8. HTML: 网页摇奖机(抽号机)
  9. 亲测UEFI启动模式的电脑安装Win10和Ubuntu双系统
  10. uni-app 介绍,什么是uni-app,它是干嘛的