摘要: 这道题我开始做时想用搜索来做,但是失败了,后来仔细一想发现这就是一个背包问题,之后一切就简单多了。 代码如下: #include #include #include using namespace std; int i_number,i_begin,i_max; int i_change[1001]; bool f[51][1001]; int m... 阅读全文
posted @ 2015-08-05 16:07 wlxy 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 这道题看起来很吓人,但事实上看懂后会发现,其根本没有任何技术含量,做这道题其实要考虑的就是每天最早结束的一场的结束时间以及最晚开始的一场的开始时间,如果结束时间早于开始时间,那么OK就这两场,否则输出无解,要注意的是,如果想在传入时就把每天分开,记得标记每一场的序号。 代码如下: #include #include #include using names... 阅读全文
posted @ 2015-08-05 16:02 wlxy 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 这道题我放了很久没有做,就是因为数据太大没什么好方法,直到后来受大神指点才发现,一道数学题被我卡死这么久。 这道题的关键就是逆向思维,所谓逆向思维就是倒着想,既然题让我们求越狱的情况数,这个不好求,我们不妨求一下不越狱的情况数,这样用总数一减即可,根据数学思想,n个房间,m种宗教,则共有m的n次方种总可能数,不越狱的情况有m乘(m-1)的(n-1)次方个,那么结果就是... 阅读全文
posted @ 2015-08-05 14:51 wlxy 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 刚开始做这道题时,我纠结了许久什么是最优走法,想了好半天也不晓得,后来被大神点醒,最有走法,最后就是每个格子都走了一遍,得,这下简单多了,算一下总共的格数是奇数还是偶数,奇数则先手赢,偶数则后手赢。 代码如下: #include #include #include using namespace std; int i_number; int main()... 阅读全文
posted @ 2015-08-04 16:40 wlxy 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 本题考查的知识点主要就是用线性筛法求欧拉函数φ,首先说一下什么是欧拉函数:对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。之所以要用线性筛法,是因为它能使我们O(n)的求出值。 先简要介绍一下线性筛法求欧拉函数φ:(摘自baidu) int m[maxn],phi[maxn],p[maxn],pt;//m[i]是i的最小素因数,p是素数,pt是素数... 阅读全文
posted @ 2015-08-03 16:40 wlxy 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 这道题我是受一位大神启发,写出的一个看起来没有一点道理,但他就是正确的解法,整体思路是这样的,由于我们需要求的是数量超过总数一半的数,因此我的想法是,用一个变量记录当前某个值出现的次数,每出现一次加一,反之减一,若变量为零,则把某个值替换为当前值,最后输出这个当前值即可。 是不是很诡异,但他就是对的,让我来给你分析一下,我们要的结果必定大于总数一半,因此他出现的个数一... 阅读全文
posted @ 2015-08-02 20:41 wlxy 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 这道题的关键就是找到所有的点中,x与y互质的点,第一反应必定是暴搜,稍想一下可以从中分开求一半,但范围仍然限定了这条路行不通,仔细画了几张图后发现下图中从第三行起第k行可连fai k个,因此只需从fai3加到fai n即可。 程序如下: #include #include #include #include #include #include #define... 阅读全文
posted @ 2015-07-31 10:50 wlxy 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 最开始的时候想用暴力的思路,从-R搜到R,后来一看数据,毁了数据太大。接着想到优化,圆加坐标可以抽象的分解为全等的八块,因此只需求从二分之根号二R到R的整点中符合要求的,但是依然超时了,后来仔细分析了一下后发现,这根本就是一道数学题,详解如下: 根据上述描述得到程序如下: #include #include #include #include using namespace ... 阅读全文
posted @ 2015-07-30 18:58 wlxy 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 整体来说,这道题与之前做的1045题目完全一样,出了说法不一样外,思路及做法可以照搬,因此在这里便不再详解。 程序如下:(如有疑问请参看我的博客http://www.cnblogs.com/szy-wlxy/p/4676642.html) #include #include using namespace std; long long int i_people/*总... 阅读全文
posted @ 2015-07-30 17:57 wlxy 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 这道题纯粹吓人的,看完题发现总共就两列,最开始想一个个进行枚举,发现费时费力还过不了,后来仔细一看,只要枚举前两个格子的四种情况后面的就全出来了,中间加个判断不符合减一就行了,结果绝对小于等于4。 代码如下: #include #include #include using namespace std; int i_long; int i_nob[10... 阅读全文
posted @ 2015-07-26 18:19 wlxy 阅读(118) 评论(0) 推荐(0) 编辑