SGU VOL1 Simple Solutions(Part I)
题目大多是1年前做的了,此文作为总结回忆性质的题解。
简单题较短,某些题目可能略长。
sgu101 . 无向图的欧拉路径问题。我是先把路求出来,再硬搞的方案。
sgu102. 求n的欧拉函数phi(n), 将n分解用公式即可。
sgu103. 最短路,带有一定的动态性,但还是满足最优化子问题。
sgu104. 及其简单的DP,IOI以前的原题来着
sgu105. div3, 因为10%3==1,故易推知答案为( n / 3 * 2 + (n % 3 > 1? 1 : 0))。
sgu106. 解线性方程, 用扩展欧几里得或者用求逆元的方法得到一组代表解,然后求通解中参数的范围即可。 特殊情况即a b中有一个或两个0, 注意答案可能会超过int32范围。
可以参考这个
sgu107. 9位数满足条件的有8个,否则嘛,只要最后9位是这8个情况中的一种就行,其余任意,故答案为7200000...,根据n控制0的个数即可。
sgu108. 自我数,直接求出所有<=n的自我数。 先将询问排序,求到对应询问的时候,记录下结果。 由于限制了空间,需要循环使用队列来计算。 因为如果当前数是k, 其产生的数将<=k+6*9= k+54,故使用长度200的循环数组存放绝对是ok的了~
sgu109. 构造题。 先将棋盘黑白染色,假设左上角是黑色的。即当前人物站在黑色的格子中。
这里先介绍n为奇数时的构造方法,n为奇数时,先让此人走奇数步,则他一定在白格子中,我们便可以将最外面一圈黑格子删掉而使得游戏可以继续。接着再让其走奇数步,则他又将出现在黑格子中(并不在最外面的一圈),于是我们可以删掉最外面这一整圈了。这是问题便 转化为n-2大小的棋盘,由于n-2还是奇数,n=1为边界条件,该问题即得到解决。
n为偶数的时候,只要先想办法走2步转化为n-1即可。
sgu110. 计算几何题, 尚未写
sgu111. & sgu112. 裸的高精度题来着,Java写起来超简单啊
sgu113. Nearly prime numbers. 和分解质因数的方法差不多
sgu114. 如果你把所有的人都放在坐标轴上,中位数就是答案。 对于城市来说,就是个加权中位数的问题而已。
sgu115. 简单的算一下就行
sgu116. 背包问题, 只是"物品"需要根据题目求一下而已。
sgu117. 模K M次剩余来着。这个题目只需要求出最小的t,满足K | t^M, 这样其余所有满足条件的解都必为t的倍数。
sgu118. 直接做即可。
sgu119. 令g = gcd(a, b, n),则(i*(a/g)%n, i*(b/g)%n)这样的数对就是所有的答案。
sgu120. 就是个几何题
sgu121. 已知解法存在DFS树构造和Eular路构造, 尚未实现。
sgu122. 特殊图的哈密尔顿回路,每次贪心选择当前剩下度最小的点即可。 也有构造方法。
sgu123. 直接照着做即可,答案long long 可存
sgu124. 计算几何,直接射线法可。
sgu125. 搜索,朴素的剪枝即可。