ACM-MATH
文章平均质量分 75
czhou0
这个作者很懒,什么都没留下…
展开
-
LightOJ 1042 Secret Origins(二进制、STL)
将一个数字化为二进制,并算出这个二进制数所含‘1’的个数,求出最小的比这个数大的并含相同‘1’个数的数。先将二进制数转化成 string,再用next_permutation() 即可。不过还有一种情况,就是这个二进制数已经是最后一个排列了,这时候就要给原二进制加上一位数了,具体做法体现在代码中。#include#include#includeusing namespace std;原创 2012-07-04 22:17:51 · 661 阅读 · 0 评论 -
POJ1176 (规律循环)
问题: 有N个开着的灯,和控制这个N个灯的四个开关。四个开关作用不同。第一个开关:flip所有的灯。第二个开关:flip奇数编号的灯。第三个开关:flip偶数编号的灯。第四个开关:flip编号为3 * K + 1 的灯,其中K = 0,1,2....。已知在C次操作后其中几个灯的状态,给出所有灯在这C次操作后所有可能的状态。方法: 通过观察可以发现,这些灯一共可以分成4种,同种灯无原创 2012-07-04 22:13:29 · 341 阅读 · 0 评论 -
POJ 2140 Herd Sums (发道水题)
有N只牛,编号为1, 2, 3 ... N,问取其中几头牛,有几种取法使取出的牛的编号和为N。只要考虑取出的牛的头数(M),从1开始迭代,若能使编号和为N,那么 N - (1 + 2 + ... + M) 必然能被 M 整除。 #includeusing namespace std;int main(){ int n; int result = 0; cin >> n;原创 2012-07-12 23:52:47 · 1242 阅读 · 0 评论 -
CodeForces 16C Monitor(gcd,水题)
有一批分辨率为 a * b 的显示器,要将长宽比例调整为 x : y,问应该如何缩小显示器,使缩小后的面积最大。容易出错的地方是x 和 y 可能不互质,所以要求出最大公约数,给 x :y约分。#includeusing namespace std;int gcd(int a, int b){ if(a == 0 || b == 0) return a + b; else原创 2012-07-10 23:22:13 · 393 阅读 · 0 评论 -
LightOJ 1136 Division by 3(取模)
一些数:1, 12, 123, 1234, ..., 12345678910, ... 然后给出两个数A, B,求出第A个数和第B数之间又多少个数能够被3整除。首先要运用到一个性质:一个数的数字和相加能被三整除,那么这个数也能被3整除。(1)然后可以发现:连续三个整数并排在一起组成的数的数字和必然能被3整除。(2)最后通过(2)总结出:1.题目中的第3K个数,必然能被三整除原创 2012-07-04 22:18:11 · 1253 阅读 · 0 评论 -
LightOJ 1006 C Hex a bonacci (取模、水~)
这道题目比较有新意,给出了一段代码,然后要优化这段代码,完成相同的功能,但是要减少时间、空间复杂度。其实题目本身不是很难,可惜自己太菜,又TLE,又WA。由于最后答案是要取除以一个大质数的余数的,最后答案又跟中间步骤的答案线性相关,所以也要给中间步骤的答案取除以这个大质数的余数,否则就会超过 int 的精度。附上代码:#include int a, b, c, d, e, f;int dp[原创 2012-07-04 22:17:21 · 504 阅读 · 0 评论 -
POJ3629 2436(CUHK summer training on 28 JUN 2012)(队列、二进制)
AB水过。C:POJ3629 打牌模拟题。K张牌中有N张好牌,每次发牌前将前P张放在最底,如何安排牌的位置使每次某人拿到的牌都是好牌。 用数组自编一个queue可以AC,然而使用C++ vector 或者 queue 都会造成TLE。可见用数组模拟速度快不少。 D:POJ2436 有N头牛,有D种疾病,每头牛都含某几种、或者不含病。现将这些牛的牛奶混合在一起,且牛奶中的病毒种类不原创 2012-07-04 22:14:40 · 427 阅读 · 0 评论