上一页 1 ··· 6 7 8 9 10 11 12 下一页
摘要: 题意:给出一些字符串其中出现频率最多的字符 c 对应26个字母的 'E'问出现频率最多的字符 c 离'E'的距离 和 让我们把字符串翻译过来..如果出现频率最大的字符有两个..则输出 "NOT POSSIBLE"思路:用一个数组来记录每个单词出现次数找最多的那个..对我来说 主要是翻译的过程 有点困难..我被绕晕了..囧~~Tips:※ 实现循环的过程用 %※ 翻译过程用((arr[i]-'A')-tmp+26)%26+'A'Code:View Code 1 #include <stdio.h> 2 阅读全文
posted @ 2012-09-09 08:03 Griselda. 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个T 代表有T组样例一个n 代表有n个任务然后接下来n 个任务 给出出发时间和 出发地点(a, b)以及目的地(c, d) 从出发地到目的地花费时间为|a - c| + |b - d|问最少用多少辆车可以完成所有任务思路:根据第 i 个任务结束时间+从第 i 个任务的目的地到 第 j 个任务的出发地 < 第 j 个任务的开始时间确立这两个任务是否可以连通..如果可以就连线然后求出最大匹配任务数 - 最大匹配 = 最短路径覆盖Tips:no tips..Code:View Code 1 #include <stdio.h> 2 #include <cstrin 阅读全文
posted @ 2012-09-08 10:02 Griselda. 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题意:给出字符串个数 n给出n串字符串找出上下两个字符串重复和最多的个数..eg:5 abc bcd cde aaa bfcde 0根据aaa abc bcd cde bfcde答案就是重复的 a bc cd cde思路:因为状态很少..最多只有10 个字符串~而每个字符串最多 10 个字符..所以可以用状态DP来实现..dp[ sta ][ i ] 表示 在sta 状态下以第 i 串字符串结尾的最优解.. sta 用 (1<<n)-1 表示..其中变成二进制后1表示有这个状态 0 表示没有这个状态..基本算法:①. 根据给出的 n 确定 sta②. 根据给出的数据确定辅助数组 f 阅读全文
posted @ 2012-09-07 21:42 Griselda. 阅读(296) 评论(1) 推荐(1) 编辑
摘要: 题意:给出女生人数 G 男生人数 B 和 男女认识的关系数 M接下来 M 行..a b 表示女生 a 和男生 b 认识..当G B M都等于0的时候表示输入结束..输出可以找出多少个人是互相认识的..P.S. 男生们都互相认识了~女生们也都互相认识了..思路:将男生看成一个集合 女生看成一个集合先求补图然后最大独立及顶点个数 = 节点数(x + y) - 最大匹配数所以我就是先把他们当成都是认识的了..如果是认识的就变成 G[a][b] = false;然后用匈牙利求最大匹配..Tips:主要是最大独立点集这个概念和求的方法~囧~如果我能够自己想出来就好了~~Code:View Code 1. 阅读全文
posted @ 2012-09-07 13:08 Griselda. 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 题意:给出样例个数T给出一个n表示有n个人..给出n个人的信息 身高 性别 音乐风格 喜欢的运动如果身高差距超过40 性别一样 音乐风格不一样 喜欢的运动一样..符合任何一项都不可以当夫妻..然后问可以找出多少人不管怎么匹配都无法成为夫妻..思路:把男生女生分成两个集合..然后根据是否符合变成夫妻的条件连线..找出可以变成夫妻的最多对数..然后用总数 - 就知道能够有多少人不管怎么样都无法成为夫妻..Tips:※ 遍历一个集合的时候记得for 循环的时候为了保证是从一个集合开始找增光路..所以要加一个if 语句来保证是一个集合的..※#definefabs(x)((x)>0?(x):-( 阅读全文
posted @ 2012-09-06 23:20 Griselda. 阅读(249) 评论(2) 推荐(0) 编辑
摘要: 题意:给出n个可选课程..给出第 i 个课程分布所在的课程表个数 t 和位置 (p, q)..P.S. :一个星期有7天..一天有12道题.. 然后看成一条线..思路:把 课程 和 分配时间 作为两个集合..然后看作求二分图的最大匹配..Tips:分配时间转变成 p*12+qCode:View Code 1 #include <stdio.h> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 #define clr(x) memset(x, 0, sizeof(x)) 阅读全文
posted @ 2012-09-05 12:13 Griselda. 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n个点和m条边<边是蓝色或者红色>的信息..问能不能组成一棵有k条蓝边的树..思路:求出尽量多地加蓝边可以加多少条..bl然后求出尽量多地加红边可以加多少条..re如果k是在bl和re间就是1 否则是0Tips:可以用kruskal也可以之间建树..Code:View Code 1 #include <stdio.h> 2 #include <cstring> 3 #include <cmath> 4 #include <algorithm> 5 using namespace std; 6 #define clr(x) m 阅读全文
posted @ 2012-08-30 19:09 Griselda. 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题意:给出了n个数..给m个询问..问在询问范围a, b内从右到左第一个出现重复的数..思路:用map求出离这个数最近的相同的数的位置..然后用rmq求出范围内位置值最大的那个~如果那个位置不在给定范围内或者最大值就是0..代表范围内没有重复的数~就输出OK..否则输出那个数..Tips:用一个数组保存输入的值..最后就可以根据求出的最大位置..找到这个重复的数..Code:View Code 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define clr(x) ... 阅读全文
posted @ 2012-08-29 23:37 Griselda. 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 题意:给出猪圈个数 m 和买家人数 n然后给出m个猪圈的猪的头数..接下来 n 行..给出mm a1 a2 .. a(mm) k 例如 2 1 5 3 表示第i+1个用户 有mm(2) 个猪圈的钥匙 就是有第 a1(1) 个和第 a2(5) 个猪圈的钥匙..还想要买得k头猪..问最多能够卖出多少头..思路:其实就是最大流~唯一有趣的是建图的过程../************************************/建一个超级源点0..超级汇点n+1以客户作为节点..超级源点根据第一个拥有猪圈的客户和超级源点连线..容量就是第一个客户累计可以得到多少头猪..因为第一个打开猪圈的客户可以取 阅读全文
posted @ 2012-08-28 22:39 Griselda. 阅读(962) 评论(0) 推荐(1) 编辑
摘要: 题意:给出order数n给出n行order<3种>第一种:travel A m a1 .. ai .. an表示来了同学A 其中知道m个信息 信息号为a1 .. ai .. an..第二种:share A B表示 A和B同学分享了她们共有的信息..其中信息可传递..并且和share先后无关..第三种:check A 表示问A同学知道了多少条信息思路:用map<string, int> 来让同学名字变成序号..用set来对信息去重..用并查集使资源共享~<可节省内存~>用set里面的size可以求的根节点的大小~即share后掌握的知识点..Tips:set里 阅读全文
posted @ 2012-08-26 21:38 Griselda. 阅读(737) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 下一页