layout: post
title: 第十四届“商汤杯”北航程序设计竞赛
author: "luowentaoaa"
catalog: true
mathjax: true
tags:
- 数学
- 矩阵快速幂
- 权值线段树
B
升级超梦 (dfs)
思路
题目比较简单,每一回合只有两个情况 要么用经验 要么用糖果
所以我们直接搜索一下n个糖果和m个exp的情况
即\(dp[n][exp]=max(dp[n][exp-need],dp[n-1][exp])\)
D
Bella 姐姐发辣条 (二分)
思路
我们发现只要最后一个人的辣条数确定了那全部人的辣条就确定了。
而且总答案随着最后一个人的辣条数减少而减少 。所以符合二分性
E
禁忌的共鸣 (数论+最小生成树)
思路
首先需要看出题目要求的是一个最大生成树
如果两个结点之间相连肯定答案是他们是GCD也就是他们的因子值
所以我们预处理每个数的因子,然后从最大的因子开始建立生成树
F
zzh 与同余方程 (数论)
思路
首先\(b-a=km\) 带入\((i+1)^{i+1}=(i+1)^i\) 可以得到\((i+1)^{i+1}-(i+1)^i=(i+1)^{i} \times(i)\)
题目要求的就是\(\sum (i+1)^i\times(i)\) 设\(f[n]=(i+1)^i\) \(g[n]=i\)
我们可以很轻松预处理出\(i+1\)的因子然后发现\((i+1)^i\) 和\(i+1\)之间有种关系
假设\(i+1=prime1^a \times prime2^b \times prime3^c \dots\) 那么\((i+1)^i=(prime1^a \times prime2^b \times prime3^c)^i\)
所以根据求因子公式$ (a+1)(b+1)(c+1)\(得出\)(a\times t+1)(b\times t +1)(c \times t + 1)$
因为因子数是积性函数 并且\(i和i+1\)互质
所以答案就很显然了。
H
Draw 顺小王子 (爆搜+模拟)
思路
暴力搜索的复杂度为\(49^2 \times T\times13\)
所以绰绰有余,主要是这题模拟的细节处理
K
wjj 的自动售货机 (线段树区间取模)
思路
第一眼线段树,区间取模和求和都明显了。