08 2013 档案
摘要:题目大意:有一个天平上有C个挂钩,分别在不同的位置上,用C个整数表示。正整数代表在原点右侧,负整数代表在左侧,就相当于一个数轴。有G个砝码,求有多少种平衡情况。思路:这是一个01背包问题。每勾上一个砝码就是一个新阶段。每一个新阶段都是在原来的出现过的状态上更新的。状态方程dp [ i ][ j+ w...
阅读全文
摘要:这题很水,最多只有26个点 的图染色问题,暴搜就行。题目翻译:当一个广播电台在一个非常大的地区,广播站会用中继器来转播信号以使得每一个接收器都能接收到一个强烈的信号。然而,每个中继器必须慎重选择使用,使相邻的中继器不互相干扰。如果相邻的中继器使用不同的频道,那么就不会相互干扰。由于无线电频道是一有限...
阅读全文
摘要:这题是个DFS搜索题。大致题意:九宫格问题,也有人叫数独问题把一个9行9列的网格,再细分为9个3*3的子网格,要求每行、每列、每个子网格内都只能使用一次1~9中的一个数字,即每行、每列、每个子网格内都不允许出现相同的数字。下面是代码:#include #include bool vish[9][10...
阅读全文
摘要:这道题是道水题,不要介意神马前导零之类的,没影响。题目大意:公司现在要发明一种新的碎纸机,要求新的碎纸机能够把纸条上的数字切成最接近而不超过target值。比如,target的值是50,而纸条上的数字是12346,应该把数字切成四部分,分别是1、2、34、6。因为这样所得到的和43 (= 1 + 2...
阅读全文
摘要:这题一开始怎么想也想不出搜索来, 后来才明白原来是这样。这是一个DFS暴搜,呵呵……下面是代码:#include #include const int M=25;int n,map1[M][M],sum,max1;bool vis[M][M];void DFS (int m,int step){ ...
阅读全文
摘要:这个题是个BFS加了一点难度的题。需要保存前一节点的在队列中的位置,操作等……下面是代码:#include #include int a,b,c;bool vis[105][105];struct node{ int x,y,pr; char s[10];} qu[15000],du,d...
阅读全文
摘要:这题是个模拟题啊!!!题目大意:已知两堆牌s1和s2的初始状态, 其牌数均为c,按给定规则能将他们相互交叉组合成一堆牌s12,再将s12的最底下的c块牌归为s1,最顶的c块牌归为s2,依此循环下去。给定输入s1和s2的初始状态 以及 预想的最终状态s12。问s1 s2经过多少次洗牌之后,最终能达到状...
阅读全文
摘要:大致题意:给定两个四位素数a b,要求把a变换到b变换的过程要保证 每次变换出来的数都是一个 四位素数,而且当前这步的变换所得的素数 与 前一步得到的素数 只能有一个位不同,而且每步得到的素数都不能重复。每一个a都可以找到一个b,所以都会有答案,题目中如果找不到输出impossible这句话可以无视...
阅读全文
摘要:本以为这题会很难,又是大数又是搜索的,结果仔细一研究,就是一水题……大致题意:给出一个整数n,(1 int n,flat;unsigned long long b;void DFS(unsigned long long a,int step){ if(flat||step==19) { ...
阅读全文
摘要:杭电“胜利大逃亡”英文版,三维BFS,水水的。不过注意细节,还是要注意细节!!!数组开大点,不要给他们省内存,开30*30*30的会RE;下面是代码:#include #include #include using namespace std;struct node{ int x,y,z,cu...
阅读全文
摘要:水水的DFS,中文题目大意不解释。这是一道八皇后问题的衍生题吧,我觉得是这样,不知道你们怎么看。直接贴代码:#include #include bool vis[10];int map1[10][10],n,k,cut;void DFS(int num,int y){ int i; if...
阅读全文
摘要:先吐槽一下:模拟神马的最讨厌了!!!!题目大意:给定一个地形图,要求类似于把冰壶从起点(标号2),移动到终点(标号3),求最小停止次数(没撞一次石块停止一次)。需要注意:1、冰壶撞到石头后,冰壶会停在石头前面,此时(静止状态)才允许改变冰壶的运动方向,而该块石头会破裂,石头所在的区域由1变为0. 也...
阅读全文
摘要:标准的DFS,只不过是坑爹的字典序坑到了无数人……题目大意:给出一个国际棋盘的大小,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径。注意事项:只有一条,那就是字典序!!!!!!!!对于马的位置,DFS搜索时需要按这个顺序来: (对图片作者表示感谢)这样搜出来的第一条路就是字典...
阅读全文
摘要:这个题可以用多种方法解决。题目大意:就是输入一堆字符串,可能重复,按字典序输出,并输出占的比例。可以用字典树,二叉查找树,Map,快排等等多种方法。我用的二叉查找树,下面是代码:#include #include #include struct node{ int cut; char c...
阅读全文
摘要:这题让我明白了POJ原来多组数据测试是这么回事啊!!大致题意:给定一些木棒,木棒两端都涂上颜色,求是否能将木棒首尾相接,连成一条直线,要求不同木棒相接的一边必须是相同颜色的。解题思路:木棒相当于边,两端相当于两个节点,建图,判断是否联通,是否是欧拉图。建图并使用并查集判断联通时需要字典树,不能用ma...
阅读全文
摘要:这个题用优先队列很好过。题目大意:给出两种操作如下:( ADD GET ) 操作 当GET取第几大 所有已添加元素 输出的元素1 ADD(3) 0 3 2 GET 1 ...
阅读全文
摘要:这道题的数据真强大,各种写法不是MLE就是TLE,好不容易换了这种写法终于AC了。题目大意:输入m个数集,每个含n个数,求从每个集合取一个数后,按非降序输出前n小的和。用优先队列做的,注意限制队列元素个数,否则会超时超内存的。下面是代码:#include #include using namespa...
阅读全文
摘要:这是一个可以用哈夫曼树来解决的题,以可以用优先队列。题目大意:FJ需要修补牧场的围栏,他需要 N 块长度为 Li 的木头(N planks of woods)。开始时,FJ只有一块无限长的木板,因此他需要把无限长的木板锯成 N 块长度为 Li 的木板,Farmer Don提供FJ锯子,但必须要收费的...
阅读全文
摘要:周赛的时候刚做过,还不知道是POJ的题嘞。这道题直接用Map,不会出任何问题。下面是代码:#include #include #include #include #include using namespace std;int main(){ int i,flat,in,p; map m...
阅读全文
摘要:这题的题意是这样的:有一堆平面散点集,任取四个点,求能组成正方形的不同组合方式有多少。相同的四个点,不同顺序构成的正方形视为同一正方形。解题思想:建立点的哈希表,枚举任意两点,计算出符合条件的其余两点,在哈希表中寻找,找到计数加一,因为不同序列构成的视为同一个正方形,最后计数需除以四再输出。下面是代...
阅读全文
摘要:这个题是对哈希表的运用练习。题目大意:已知a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 ,其中系数 ai∈[-50,50] 自变量xi∈[-50,0)∪(0,50],给出系数a1~a5,求方程解的个数。不过直接用的map,这算不算哈希表??下面是代码:#include #i...
阅读全文
摘要:这道题是一道概率DP题,好难啊!!!题目大体是这个意思:ACM比赛中,共M道题,T个队,pij表示第i队解出第j题的概率问 每队至少解出一题且冠军队至少解出N道题的概率(冠军可以并列)。看题解看懂的,表示大牛们真的好强。因为冠军不一定有多少,所以这题需要转化为:求每队均至少做一题的概率P1 减去 每...
阅读全文
摘要:说实在话对于英文渣渣的我读题真的很难。下面是题目大意,对提供者表示感谢。代码操作如下:1、先将十进制数转换成二进制数记录保存。2、然后逐行累加,得出到某只牛时某种特征出现了几次。3、每行减去第一个数,得出一个序列,若两头牛之间是平衡区间的话,各个特征的增长数是相等的,及减掉第一个数得出来的序列是相等...
阅读全文
摘要:这是一个水水的水题,排序再查找。贴代码:#include #include struct node{ int a[6];}snow[100005];int cmp1(const void *a,const void *b){ return *(int *)a-*(int *)b;}int...
阅读全文
摘要:标准并查集模版题,不多说贴模板。#include int a[30005];int find1(int f){ while(a[f]!=f) { f=a[f]; } return f;}int main(){ int n,m; while(scanf...
阅读全文
摘要:做完这题长知识了,原来求逆序数可以用排序的交换次数来计算。但仅限于稳定的排序,用快排这类不稳定的办不了。下面是代码:#include #include long long a[500005],temp[500005];long long ans;void mergearray(int first, ...
阅读全文
摘要:这也是水题一道啊,STL各种解法,水水的。于是乎借着这个题学习了一下nth_element。下面是水水的代码:#include #include using namespace std;int main(){ int n; while(scanf("%d",&n)!=EOF) { ...
阅读全文
摘要:这题也是水题,暴力遍历0MS水过轻松加愉快。不解释直接贴代码:#include #include int main(){ char s1[100005],s2[100005]; while(scanf("%s",s1)!=EOF) { scanf("%s",s2); ...
阅读全文
摘要:这个题很容易,直接以第一个字符串为母串,枚举其中的子串查找其他串里是否存在,0MS水过。直接暴力枚举,贴代码:#include #include int main(){ int t; scanf("%d",&t); while(t--) { int n,flat...
阅读全文
摘要:简单的字符串查找题,暴力搜索就能过。重点是细节,细节有没有!!!爆搜差不多150毫秒,我建了一个长度哈希表,成了110毫秒。下面是代码:#include #include #include char dic[10005][18],s[20];int cmp(const void *a,const v...
阅读全文
摘要:这题的题目内容读起来很复杂,我来简单解释一下: 为了追求ACM比赛的公平性,所有用作ACM比赛的电脑性能是一样的,而ACM董事会专门有一条生产线来生产这样的电脑,随着比赛规模的越来越大,生产线的生产能力不能满足需要,所以说ACM董事会想要重新建造一条生产线。 生产线是全自动化的,所以需要...
阅读全文
摘要:这题是一个标准的最大流问题。题目大意是:有n个点,其中nc个点是发电站,有np个点是用户,其他的是中转站,求最大流。问题中存在着多源点和多汇点,我们可以把这些源点和汇点当作中转站,在虚拟一个超级源点和超级汇点,EK算法上模版,G++编译器1391MS。下面是代码:#include #include ...
阅读全文
摘要:这是个DP题,很简单。题目大意:给定一个字符串和N个单词,要求从字符串中去掉最少的字符后能够被这些单词表示。直接贴代码:#include #include const int M = 605;int len[M],dp[305],l,w;char dic[M][30],s[305];void DP(...
阅读全文
摘要:这题一开始真的不知道该怎么建图,由此出现了一系列的问题。题目大意:一个矩形中,有N个城市’*’,现在这n个城市都要覆盖无线,若放置一个基站,那么它至多可以覆盖相邻的两个城市。问至少放置多少个基站才能使得所有的城市都覆盖无线?这个题建图时需要对城市所在点与其他点的关系建图,如果在这个城市建立基站可以覆...
阅读全文
摘要:这个题的大意是:有个人用一种威力巨大的武器可以打爆小行星,给定一个区域内所有的小行星坐标,问最少能用多少次这种武器打爆所有的小行星。这是一个二分图匹配的模版题,以每一个小行星的X,Y坐标做二分图,然后上模版。下面是代码:#include #include const int M=500;int n,...
阅读全文
摘要:无奈了,巨坑陷阱题加读错题导致了N个WA。题意是这样的:给定几个标签球的重量大小关系,求每个球是第几重的(即每个球在所有球的重量中由小到大排名是多少)。(输出是每个球第几重,而不是几号球比几号球重!)。此题重点是:1、需要逆序拓扑,找入读为零的点时要从大到小找。2、注意最后的处理,是输出几号球是第几...
阅读全文
摘要:这个题的题意是这样的:给定有向边,问在输入地几个边的时候出现了确定的拓扑序列或者环,如果输入完所有边还没有结果则输出“Sorted sequence cannot be determined.” 。这里需要注意的是:1、有环和有确定的拓扑序列谁先出现输出谁。2、注意记录是在哪一个边输入之后出现的。3...
阅读全文
摘要:题目大意:给你一个地图,求由地图上S点到其他点A的最短路径。代码操作步骤:1、记录下所有的A和S的位置。2、BFS求出任意两点之间的最短路程,建立邻接矩阵。3、Prim算法求最小生成树。下面是代码:#include #include #include using namespace std;cons...
阅读全文
摘要:题目大意如下:农民John当了镇长,他要为小镇谋福利,就为小镇所有的农场铺设光缆链接,给定矩阵表示没两个农场之间的距离,求铺设光缆的最小成本。Prim算法,代码如下:#include #include const int M=505;int map1[M][M],n;#define typec in...
阅读全文
摘要:题目大意如下:又一个岛国没有公路,于是想修公路,通过矩阵给出每两个岛之间的距离,求最小代价建成的公路网中最长的两岛间的距离。也就算是求稠密图最小生成树的最长边。Prim算法,代码如下:#include #include const int M=505;int map1[M][M],n;#define...
阅读全文
摘要:这个题是一个最小生成树的题,题意如下:1、每一种卡车的类型是由7个字母表示的。2、每一种卡车的类型是由其他某一种卡车的类型衍生的(第一种除外)。3、某两种卡车之间衍生的代价是由这两种卡车所代表的字符串的字母不同的个数表示的。4、求怎样衍生代价最小。这是一个稠密图最小生成树题,用Prim算法比较好,因...
阅读全文
摘要:这个题也是十分水的题,节点最多只有30个。Floyd就可以过的哈。需要注意的是:1、不要用gets(),因为中间有空行;2、注意输出的是Yes,No。下面是代码:#include #include const int inf=11.0) //判断条件 { ...
阅读全文
摘要:这个题很水,后台数据相当弱,写这个只是记录一下。再次吐槽一下,那个不联通的情况(输出“disjoint”)甚至都不用输出,输出错了也没事。。用的Foyld, 0MS;贴一下代码:#include #include const int inf=1map1[i][k]+map1[k][j]) ...
阅读全文
摘要:这题说实在话就是模版题,可是你要是不知道模版是怎么工作的,有模版也没用,这个题就是个例子。所以说这个题给了我个教训就是:有了模版也得自己敲,要不然关键时刻是不管用的。这个题的关键在于:1、虚拟一个节点0,所有物品的价值被表示为这个点到对应物品编号点的边的权值。2、相关联的物品连一条权为优惠价格的边。...
阅读全文
摘要:这题是一个模版题,可以借助bellman-ford算法中的判断负环的办法解决。既然是模版题不多说上模版:#include #define typec int // type of costconst typec inf=0x3f3f3f3f; // max of costconst int V=50...
阅读全文
摘要:这个题可以用BFS解决。有以下几个注意事项:1、使用优先队列可以缩短程序运行时间。2、要注意墙和门的相对位置(我就在这卡了一天。。sad)。3、注意只有门和墙的位置范围是[ 1 , 199 ],Nemo的位置不一定。4、注意没有墙和门的情况。5、注意数组越界。下面贴代码:#include #incl...
阅读全文
摘要:优先队列这个名字,顾名思义就是在队列中的元素是有优先级的。队列首部元素是队列中优先级最高的元素。对于整形,实型,字符型等等是一样的:///整形优先队列,按照从小到大排序:测试可输入任意五个整数。#include #include using namespace std;int main(){ ...
阅读全文

浙公网安备 33010602011771号