![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM and novicer
文章平均质量分 72
Flintx
鲜衣怒马少年时
展开
-
Codeforces 534C Polycarpus' Dice(数学,公式推导)
C. Polycarpus’ Dice time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Polycarp has n dice d1, d2, …, dn. The i-th dice shows numbers from 1 t原创 2015-04-13 20:34:51 · 687 阅读 · 0 评论 -
POJ 1014 Dividing(简单dp)
Description Marsha and Bill own a collection of marbles. They want to split the collection among themselves so that both receive an equal share of the marbles. This would be easy if all the marbles ha原创 2015-03-25 23:53:29 · 388 阅读 · 0 评论 -
CodeForces 384B Multitasking(大概是贪心)
Description Iahub wants to enhance his multitasking abilities. In order to do this, he wants to sort n arrays simultaneously, each array consisting of m integers.Iahub can choose a pair of distinct in原创 2015-03-04 22:29:40 · 547 阅读 · 0 评论 -
codeforces 24A Ring road
今天写个题解。 一个图论的水题,当然,对我来说简直一筹莫展。 codeforces 24AA. Ring roadNowadays the one-way traffic is introduced all over the world in order to improve driving safety and reduce traffic jams. The government of Be原创 2015-03-01 17:13:32 · 829 阅读 · 0 评论 -
WOJ1540 Fibonacci(数学推导,矩阵快速幂)
题目戳这里 题意:求斐波那契数列的前n项立方和,1<=n<=10^9,例如前3项为1^3+1^3+2^3=10. 思路:鉴于n如此大的规模,很明显不能直接求,所以需要用到矩阵快速幂的改进版 我们知道斐波那契数列第n项可以表示为矩阵 1 1 1 0 的n次方,那前n项立方和能否用矩阵的n次方来表示呢?我们可以递推来考虑: 1.如果是要求前n项和sum(f(n)),展开后我们发现: su原创 2015-04-16 00:13:08 · 462 阅读 · 0 评论 -
高精度模板
#include <iostream>#include <algorithm>#include <string>#include <cstring>#include <cstdio>using namespace std;const int maxn = 1000;struct bign{ int len, s[maxn]; bign()//构造函数 {转载 2015-03-29 21:11:13 · 454 阅读 · 0 评论 -
CodeForces 382B Number Busters(数论-数学推理)
Description Arthur and Alexander are number busters. Today they’ve got a competition.Arthur took a group of four integers a, b, w, x(0 ≤ b < w, 0 < x < w) and Alexander took integer с. Arthur and Alex原创 2015-03-04 00:29:25 · 647 阅读 · 0 评论 -
CodeForces 388A Fox and Box Accumulation(贪心)
Description Fox Ciel has n boxes in her room. They have the same size and weight, but they might have different strength. The i-th box can hold at most xi boxes on its top (we’ll call xi the strength原创 2015-03-03 18:10:45 · 518 阅读 · 0 评论 -
CodeForces 340C Tourist Problem(组合排列,公式推导)
C. Tourist Problemtime limit per test 1 secondmemory limit per test 256 megabytesinput standard inputoutput standard outputIahub is a big fan of tourists. He wa原创 2015-03-03 00:30:57 · 558 阅读 · 0 评论 -
CodeForces 23A You're Given a String...(字符串处理)
Description You’re given a string of lower-case Latin letters. Your task is to find the length of its longest substring that can be met in the string at least twice. These occurrences can overlap (see原创 2015-03-01 22:55:32 · 1680 阅读 · 0 评论 -
2015.2.25
DescriptionThere are n Imperial stormtroopers on the field. The battle field is a plane with Cartesian coordinate system. Each stormtrooper is associated with his coordinates (x, y) on this plane.原创 2015-02-25 21:37:20 · 486 阅读 · 0 评论 -
2015.2.27
1.贪心算法(全文转载自贪心算法) 一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关原创 2015-02-27 23:45:53 · 575 阅读 · 0 评论 -
hdu4000 Fruit Ninja(树状数组)
题目戳这里题意:对1~n的一个排列,求所有的i<j<k且a[i]<a[k]<a[j]的个数。思路: 全局思路在于:小大中组合个数 = 小(大)(大)组合个数 - 小中大组合个数 小(大)(大)的意思是第一个元素比后两个元素要小的组合。 对于第i个数组元素,qian表示在i之前有几个比a[i]要小,hou表示i之后有几个比a[i]要大。 则小中大 组合个数= qian * hou; 小(大)原创 2015-05-16 01:16:41 · 498 阅读 · 0 评论 -
POJ 2599 Largest Rectangle in a Histogram(DP&单调栈)
题目可以戳这里题意:连续输入n个紧挨着的宽度为1的矩形高度,求组成矩形的最大面积。分析: 这题是个好题,迄今为止我已经见到过四种解法了,最容易想到的有dp与栈操作,此外还有单调队列和斜率优化的方式,综合时间空间与代码实现难度而言,这里我推荐dp大法。 此题最关键的地方便是能否想到用边界来划分区域,只要我们确保第i个矩形的左边界与右边界之间的矩形都高于第i个矩形,那么边界内最大面积必为height原创 2015-04-17 19:48:34 · 570 阅读 · 0 评论 -
Codeforces 534B Covered Path
这题是道水题,主要是展示一份神代码。#include<cstdio>int i,s,z,a,q;main(){ scanf("%d%d%d%d",&i,&s,&z,&a); while(z--)if(i<=s)q+=i,i+=a;else q+=s,s+=a; printf("%d",q);}代码贵在精炼,可读性好并不意味着要长篇累牍。原创 2015-04-13 21:04:29 · 594 阅读 · 0 评论 -
uva409 Excuses, Excuses!(字符串处理)
题目戳这里 题目大意: 给出一定量的关键词与一定量的句子,查找含有关键词量最多的句子,并输出,如果是多个句子,一并输出。 注意: 1.关键词在句子中出现必须是单词的形式,关键词是ab的时候在句子中出现的合法形式应该是:ab c 或ab,c等,abc则不算在内。 2.不区分大小写。 3.同一关键词在一个句子中多次出现只算一个。思路: 注意到以上三点,直接模拟即可,可以运用string类里原创 2015-04-04 16:51:22 · 524 阅读 · 0 评论 -
uva10815 Andy's First Dictionary(字符串的简单处理)
题目戳这里题意: 按字典序输出文字段落中出现过的所有单词,出现多次记为一次。思路: 1.大写换小写。 2.过滤字母以外字符,生成多个单词,将单词插入到set容器中。 3.使用set容器按字典序自动生成所需答案。ac代码:/**Author : Flint_x *Created Time : 2015-04-04 17:02:48 *File name : uva10815.cpp *原创 2015-04-04 17:29:31 · 556 阅读 · 0 评论 -
uva537 Artificial Intelligence?(字符串转化为浮点数)
题目请戳这里 题目大意: 给一行字符串,从中分析出P,U,I中的两个,根据P = UI求出剩下一个是多少,需要注意的是,数字可能是浮点数,且有可能跟着m,M或k的后缀。思路: 写这个题解关键在于get到了一个新的函数atof(const char*) 这个函数的作用是将字符串转换为双精度浮点数,具体用法可见代码,包含在stdlib.h库中,其余部分只需要按着题意来模拟即可。ac代码:/**原创 2015-04-04 15:25:10 · 901 阅读 · 0 评论 -
CodeForces 25C Roads in Berland(图论-最短路径)
Description There are n cities numbered from 1 to n in Berland. Some of them are connected by two-way roads. Each road has its own length — an integer number from 1 to 1000. It is known that from each原创 2015-03-02 22:47:46 · 881 阅读 · 0 评论 -
2015.2.26
1.C/C++位操作初窥 六大位运算符:与&,或|,异或^,非~,右移位>>,左移位<< 优先级:位运算 & | << >> ^ ~ % 1.1&与运算 运算规则: 1 & 1 == 1 1 & 0 == 0 0 &原创 2015-02-26 22:16:16 · 401 阅读 · 0 评论 -
CodeForces 71C Round Table Knights(数学+枚举)
题目戳这里题意:圆上有n个点均匀分布,其中点的状态有0或1两种情况,现在告诉你所有点的状态,问:能否由状态为1的点组成正多边形。思路:公式推理+枚举。当n=3时,我们需要验证是否有正三边形(三角形);当n=6时,我们需要验证是否有正六边形与正三角形;当n=9时,我们需要验证是否有正九边形与正三角形;……可以发现只要检测n的大于3的因数作为边数原创 2015-05-17 22:07:25 · 872 阅读 · 0 评论 -
hdu4145 Cover The Enemy(贪心+枚举)
题意:已知两座炮塔的坐标,以及n个士兵的坐标,以两座炮塔A,B为圆心,R1,R2为半径,可覆盖所有士兵的坐标,求R1^2+R2^2最小值。思路:这道题开始的思路是:枚举每个敌人,比较它到2个炮塔的距离,如果距离A近,则把这个距离与上个距离A近的敌人的距离比较,取较大者。反之同理处理B。这样就得到A和B炮的半径,进而得到答案。但是这样是错的。若AB距离为2原创 2015-05-14 23:45:20 · 708 阅读 · 0 评论 -
Traning@4.11 div2
训练地址Problem A CodeForces 353A Domino 题意:输入n对数(xi,yi),所有数对的xi之和为sumx,yi之和为sumy,判断需要交换几个数对的xi与yi值才能使sumx与sumy均为偶数,如果不行输出-1.思路: 1.若sumx与sumy均为偶数,输出0;不是,则sumx与sumy必然均为奇数,继续2:;其余情况输出-1。 2.sumx与sumy均为奇数原创 2015-04-12 23:10:16 · 485 阅读 · 0 评论 -
CodeForces 342B Xenia and Spies(贪心)
Description Xenia the vigorous detective faced n(n ≥ 2) foreign spies lined up in a row. We’ll consider the spies numbered from 1 to n from left to right.Spy s has an important note. He has to pass th原创 2015-03-05 21:27:43 · 705 阅读 · 0 评论 -
CodeForces 510B Fox And Two Dots(图论-回路判定)
Description Fox Ciel is playing a mobile puzzle game called “Two Dots”. The basic levels are played on a board of size n × m cells, like this:Each cell contains a dot that has some color. We will use原创 2015-03-04 11:30:51 · 797 阅读 · 0 评论 -
HDU 4162 Shape Number(字符串,最小表示法)
HDU 4162题意:给一个数字串(length 思路:第一步是将差分码求出:s[i] = (s[i] - s[i+1] + 8) % 8;第二步是求出最小字典序的循环同构差分码,我之前没注意到字符串规模。。直接用set做,MLE+TLE。。。正确的方式应该是一种O(n)的解法,即最小表示法。//关于最小表示法的证明与详述请参考最小表示法:)最小表示法算法: 初原创 2015-07-25 21:08:23 · 542 阅读 · 0 评论 -
HDU 4173 Party Location(计算几何,枚举)
HDU 4173题意:已知n(n思路:不妨先考虑party可能的位置,要尽可能多的邀请到选手参加,则只需考虑party所在位置在某两位住所连线的中点上或某选手住所所在位置,因为这是最大参加party选手数很有可能在的位置。若其他位置能得到最大参加选手数,那么中点或选手住所也一定可得到。//反证法可得,试着画画就ok~那么,只要我们枚举所有中点与选手住所的位置,所能得到的可参加p原创 2015-07-25 22:15:08 · 733 阅读 · 0 评论 -
UVALive 3971 Assemble(模拟 + 二分)
UVALive 3971题意:有b块钱,想要组装一台电脑,给出n个配件的种类,名字,价格,品质因子。若各种类配件各买一个,总价格思路:求最大的最小值一般用二分法。在(0,maxq)内进行二分,判定q作为最差品质因子是否可行。大白书原题,比较考验代码功底。code:/** @author Novicer* language : C++/C*/#in原创 2015-07-26 00:01:05 · 844 阅读 · 0 评论 -
HDU 4268 Alice and Bob(贪心+multiset)
HDU 4268题意:Alice与Bob在玩卡片游戏,他们每人有n张卡片,若Alice的一张卡片长与宽都不小于Bob的一张卡片,则Bob的卡片就会被盖住,一张卡片只可以使用一次,且不可旋转求Alice最多可以盖住多少张Bob的卡片。思路:记录两人卡片情况,并按照长度将两人卡片分别降序排序。遍历两人的卡片,将长度小于Alice的卡片长度的Bob卡片的宽度插入multiset中,在multis原创 2015-07-26 21:55:48 · 696 阅读 · 0 评论 -
HDU 4193 Non-negative Partial Sums(想法题,单调队列)
HDU 4193题意:给n个数字组成的序列(n 思路:这题看到数据规模觉得只能用最多O(nlogn)的算法,然后想到了之前刚做过的有关最小表示法的题,但还没证明出一个做这题有效的算法出来。后来看过题解,发现用的最多的方法是单调队列,然而我对这个知识点知之甚少orz/*科普君:from单调队列单调队列是指:队列中元素之间的关系具有单调性,而且,队首和队尾都可以进行出队操作,只原创 2015-07-26 23:18:52 · 739 阅读 · 0 评论 -
HDU 4283 You Are the One (区间dp)
HDU 4283题意:有n个男屌丝依次排队要登台,如果某个男屌丝前面排有k个人,则该屌丝很生气,生气程度 = (k-1)*D(D代表屌丝程度)。现在有一个小黑屋,小黑屋先进后出,如果把某屌丝放进去,那么他后面的人就能先登台。给出每个人的屌丝程度与原定上台顺序,求怎样利用小黑屋,能够使众屌丝生气程度之和最小,求出最小值。思路:#define 愤怒值 生气程度 dp[i][j]表示原创 2015-07-27 21:35:57 · 547 阅读 · 0 评论 -
HDU 4288 Coder(模拟) 附:upper_bound与lower_bound的比较
HDU 4288题意:太长。。点进去自己看吧思路:一道模拟题,但直接模拟会卡TLE,所以进行些许优化,将复杂度/5.简而言之就是用一个有序数组来模拟set。优化是利用lower_bound函数,这里简介下lower_bound 与 upper_bound 的区别:摘自:http://blog.csdn.net/weiguang_123/article/details/7原创 2015-07-27 21:50:51 · 595 阅读 · 0 评论 -
HDU 4293 Groups(区间dp)
HDU 4293题意:有 n 个人,可任意分成若干组,然后每个人各提供一个信息,表示他们组前面有多少个人,后面有多少个人。问最多有多少个信息是真实的的。思路:这道题一开始给我的印象是什么乱七八糟的东西,后来也没想通到底该怎么做,好在赛后百度在手天下我有:)我们可以把 这n个人看成一段区间 [1,n]。设每个人的信息是a、b,则这个信息代表了他们组所在的区间 [a+1,n-b]。原创 2015-07-27 22:05:36 · 706 阅读 · 0 评论 -
HDU 4175 Class Schedule (暴力+一点dp)
HDU 4175题意:有C座楼,每座楼有T个教室,一个人需要访问C个教室,每座楼只能访问一个教室。访问教室需要消耗能量,从x点走到y点需要消耗abs(x-y)的能量,最后要走到目的点L,问最后走到目的点L需要消耗的最少能量。思路:读清题意,用getchar()的方式去读。。此外英文阅读水平比较拙计,亟待提升,以后不能再直接用有道翻译来做题了!直接暴力枚举。用dp[i][j]表示clas原创 2015-07-26 23:32:02 · 765 阅读 · 0 评论 -
HDU 4415 Assassin's Creed(贪心)
HDU 4415题意:壮哉我Assassin! E叔有一柄耐久度为m的袖剑,以及n个目标士兵要去解决。 每解决掉一个士兵,消耗袖剑Ai的耐久度,且获得该士兵的武器,可以使用该武器解决Bi名其他士兵。 E叔要尽可能地消耗更少耐久度解决更多的敌人,求最小消耗与最大杀敌数。思路:我们把士兵分为两个集合:e1与e2,e1的士兵 Bi = 0 , e2 的 Bi > 0.我们发现,如果能解决e2的任意一原创 2015-08-24 00:06:00 · 1372 阅读 · 0 评论 -
POJ 2965 The Pilots Brothers' refrigerator (想法题)
POJ 2965题意:输入一个形如:-+-----------+--4*4图案,+表示close,-表示open,定义一种操作为:改变某个单元格符号(+变-,-变+),同时单元格所在行与所在列的所有单元格符号都会发生改变。求最少操作次数能使所有单元格内都是‘-’。并输出要操作的单元格。思路:正常的做法和POJ 1573类似,dfs枚举即可,见code1原创 2015-07-29 19:48:26 · 662 阅读 · 0 评论 -
POJ 1753 Flip Game(dfs+枚举)
POJ 1753题意:输入一个4*4的图像,由黑白两色组成,定义一种操作为:改变某个格子内小球的颜色(黑变白,白变黑),同时其上下左右的格子内小球也将变色。求最少多少次操作能使之成为纯色图案。思路:对一个格子操作偶数次等于没有操作,操作奇数次等于操作一次,所以答案在0~16以及impossible之间。从n=0开始枚举n次操作可能的组成情况,即操作哪几个格子,若某种组合能变原创 2015-07-29 19:30:10 · 747 阅读 · 0 评论 -
CodeForces 399C Cards (数论)
题目请戳这里题意简单不予赘述,说做法。有一个容易证明的结论,x1+x2+...+xn为定值,当任意xi等于x1~xn的均值时,x1^2+x2^2+...+xn^2等于最小值。所以我们要尽可能使‘x'不连续。附上官方题解公式:1. Maximize the value of x12 + x22 + ... + xp2 where x1 + x2 + ... + xp原创 2015-07-19 22:02:43 · 613 阅读 · 0 评论 -
Ural 1780 Gray Code (暴力)
Ural 1780题意:输入一个二进制数与该二进制数的格雷码,但有一些位置不确定,写程序将其恢复,无法恢复输出Impossible,多解输出Ambiguity。思路:其实是个普通的乱搞题。。 Gray码的定义:Gi=Bi−1⊗Bi,G0=B0G_i = B_{i-1}\otimes B_{i} , G_0=B_0 (第i位格雷码等于第i位二进制码与第i-1位二进制码的异或值) 然后按照这个定义原创 2015-08-27 00:58:01 · 824 阅读 · 0 评论 -
HDU4149 Magic Potion(位运算)
题目请戳这里题意:给出x1,x2,x3,x4,x5,x6,x7,x8与某值m进行异或运算后的结果,再给出x1~x8之和与m进行异或运算后的结果sum,求m.思路:根据位运算特性来做,由于m最大为32位,我们可以从最低位依次来推理得到,用x>>i&1来取右数第i-1位的值。假设二进制右起第一位是1,算出所有xi的右起第一位二进制结果,累加得到tmp,比较tmp与sum的最右位,符合则原创 2015-07-20 18:59:18 · 1049 阅读 · 1 评论