上一页 1 ··· 7 8 9 10 11 12 下一页
摘要: 题意:给出n表示geeks人数..也是位置总数..给出a1 a2 .. ai .. an 表示第 i 个人想要坐从左往右第 ai 个空位..给出m表示询问的个数..给出m个数b1 b2 .. bi .. bn 表示询问第 bi 个人的位置..思路:如果模拟过程..应该是先按要求排好位置..然后输出位置值..排好位置的过程就用到了二分..用树状数组表示当前位置前有多少个空位..然后二分找出满足当前位置前面空位有 ai 个的位置..Tips:记得安排好第i个geeks的位置后要modify树状数组..Code:View Code 1 #include <stdio.h> 2 #incl 阅读全文
posted @ 2012-08-26 21:25 Griselda. 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 题意:给出点和边的个数n, m给出相连点的边..形如(a, b)求最少删去多少个点可以使存在不相邻的两个点不连通..思路:拆点+求最大流..①. 构造一个容量网络N②. 原图中的每个顶点变成网络N中的两个顶点v' 和 v'', 顶点v' 和 v''之间存在一条弧容量为1<确保这个点只可以路过一次..>③. 原图G中的每条边e(u, v), 在N中都有对应弧为e'<u'', v'> 和 e''<u', v''>, e' 和 e' 阅读全文
posted @ 2012-08-26 11:56 Griselda. 阅读(537) 评论(0) 推荐(0) 编辑
摘要: Ambiguous operators need parentheses -----------不明确的运算需要用括号括起Ambiguous symbol ''xxx'' ----------------不明确的符号Argument list syntax error ----------------参数表语法错误Array bounds missing ------------------丢失数组界限符Array size toolarge -----------------数组尺寸太大Bad character in paramenters -------- 阅读全文
posted @ 2012-08-11 17:45 Griselda. 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 题意:给一串数字长度n 和 取值长度范围m还有这串数字..a0, a1, a2, a3, ..., an求这串数字中在 长度范围m 内和sum 最大的..思路:从1~n 遍历每一个数..当前数字串和S(i) - 以前数字串和中的最小那个S(i-k){1 < k <m}<以前数字串的‘以前’范围是取值长度范围>‘以前数字串和中的最小那个’可以用 单调队列que 来控制..取遍历结果中最小那个..Tips:主要讲一下什么是单调队列..单调队列..顾名思义就是 单调增或减的队列..它存的值是对应 和数组s 里的下标..其中队头元素是 队列s 最大值或最小值的下标..但是其实这 阅读全文
posted @ 2012-08-10 18:51 Griselda. 阅读(820) 评论(0) 推荐(0) 编辑
摘要: 题意:现实生活问题:用手机打字先给出n个单词表示常用单词然后用户按手机键盘上面的数字键.要求用户每按一个数字键,手机弹出可能性最大的单词思路:基础的Trie应用..用字典序构造手机词典..并累计每一个单词前缀串出现的概率. 然后创建数字和字母的映射表(1-3)..计算所有可能前缀串的概率值..Tips:※ 字典树的典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。※ 【网上摘录】串的快速检索: 给出N个单词组成的熟词表,以及一篇全用小写英文书写的文章,请你按最早出现的顺序写出所有不在熟词表中的生词。 在这道题中,我们可以用数组枚举,用哈.. 阅读全文
posted @ 2012-08-08 17:22 Griselda. 阅读(946) 评论(1) 推荐(1) 编辑
摘要: 题意:给一 n*m 的棋盘..其中挖了几个洞<闲的没事了..>在木有洞的相邻两个格涂颜色..问能不能都涂上.. 这就是能涂上的..如果能就输出YES 不能就NO思路:※ 很特别的建图方法..因为左右相邻的两个格子的i+j的奇偶性肯定不一样.. 所以就以 i+j 的奇偶性来分出两个集合..成为二分图.. i+j 是奇数为一个集合..i+j 是偶数为一个集合.. 然后利用匈牙利算法..求出最大匹配数.. 最大匹配数正好是未挖洞的格子个数的一半就证明是YES..Tips:先是都初始化为-1 如果是挖洞了的就变成0然后根据 i + j 奇偶性给每个格子编号..即第几个奇数格子... 阅读全文
posted @ 2012-08-08 01:46 Griselda. 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 题意:用A~Z表示0~25..给出2个200以内的XYZ-26进制数..即a0 a1 a2 a3……an求出和..用XYZ-26进制表示..其中XYZ-26 -> 10进制是m = a0 * 26^(n-1) + a1 * 26^(n-2) + … + an-3* 26^2 + an-2*26 + an-1思路:不用进行转换然后相加再换回去..直接相加..模拟进位..Tips:※可以直接把短的加到长的字符串上..eg:ABC+CD就是 ABC + CD ---------... 阅读全文
posted @ 2012-08-07 16:18 Griselda. 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题意:很长很长的小数相加..思路:用1000长的数组处理两个小数..前500存整数..后500存小数..然后相应位相加..然后输出除去前导0和后面0的..Tips:※ strchr(char *a, char c) 返回的是 a 字符数组中 c 字符的第一次出现的位置..返回的不是迭代器的位置..而是地址..※ 主要就是对字符串的处理..要很小心阿..※ 以字符数组的形式读入高精度小数..然后用他们 - ‘0’..把字符变成整数来处理..最后以整数方式输出..Code:View Code 1 #include <stdio.h> 2 #include <cstring> 阅读全文
posted @ 2012-08-07 00:00 Griselda. 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 题意:求出2000以内的斐波那契数思路:大数相加Tips:---Code:View Code 1 #include <stdio.h> 2 #include <cstring> 3 4 int f[1010][220]; 5 int main() 6 { 7 int i, j; 8 int n, T; 9 int tmp, ttmp;10 f[1][0] = f[2][0] = 1;11 for(i = 3; i < 1010; ++i){12 for(j = 0; j <= 210; ++j)13 f[i][... 阅读全文
posted @ 2012-08-06 19:56 Griselda. 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题意:有m个人拿50 n个人拿100 前台没零钱..问多少种合法的排队方法思路:网上摘录:假设m=4,n=3,的一个序列是:0110100显然,它不合法然后我们把他稍微变化一下:把第一个不合法的“1”后面的所有数0位为1, 1位为0;这样我们得到了另一个序列:0111011,说明每个不合法的都有一个这样的序列跟他一一对应所以计算公式就是:合法的排列方式=所有排列方式-非法排列方式这里非法排列方式的计算 就是:(-)*M!*N!然而在这题,因为每个人都是不同的,所以还要乘以 M!*N!所以得出最终方程:F(N)=(-)*M!*N! ;然后再化简一下;F(N)=(M+N)! * (M-N+1)/( 阅读全文
posted @ 2012-08-06 17:31 Griselda. 阅读(557) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 下一页