摘要:
题意:求凸包面积/50,并取整。分析:用模板。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;#define maxn 10005struct Point{ double x, y;} point[maxn], cvx[maxn];int n, m;bool mult(Point sp, Point ep, Point op){ return 阅读全文
posted @ 2012-07-03 19:20
undefined2024
阅读(249)
评论(0)
推荐(0)
摘要:
题意:约瑟夫问题分析:约瑟夫问题,有n个人站成一圈,依次编号0~n,编号为m%n的人出局,然后剩下的n-1个人重新编号,让原来在m后面的那个人编号为0,剩下的依次递增,编号从1~n-1。再次让编号为m%(n-1)的人出局。不断重复此过程,直至只剩一个人为止。问这个人在第一次编号时的编号。想要解决约瑟夫问题我们要逆推。试考虑刚才过程的逆过程。当前剩余x人且已编号,逆过程也就是把那个刚刚出局的人重新加进圈里来,并还原上一次的编号。我们需要做的是在当前x人中的编号为0的那个人前面插入一个人,让那个人的编号为m%(x+1),其余人的编号可根据这个新加进来的人的编号来确定。我们要从最后剩一个人的情况开始 阅读全文
posted @ 2012-07-03 16:44
undefined2024
阅读(363)
评论(0)
推荐(0)
摘要:
O(n)的dpView Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;#define maxn 30005int n;int cow[maxn];int f[maxn][5];void input(){ scanf("%d", &n); for (int i = 1; i <= n; i++) scanf("%d", &cow[i]);}v 阅读全文
posted @ 2012-07-03 15:52
undefined2024
阅读(211)
评论(0)
推荐(0)
摘要:
题意:求出度为0的强连通分支。分析:采用邻接阵的强连通分支tarjan模板。View Code const int maxn = 5005, maxm = 100005;struct Edge{ int v, next;}edge[maxm];int n, m, ncount, idx;int head[maxn];int dfn[maxn], low[maxn];bool vis[maxn], instk[maxn];int stk[maxn], top, cpn_num, cpn[maxn];int out[maxn];void addedge(int a, int b){ /... 阅读全文
posted @ 2012-07-03 14:55
undefined2024
阅读(388)
评论(0)
推荐(0)
摘要:
题意:给点一个无向图,求一个生成树使树中最大边与最小边的差的最小。分析:并查集。把所有边排序,然后从小到大看,每次枚举一个边,将其权值作为下界,向右寻求一个上界,让上下界之间的边可以使得图连通。寻求过程中,是每次将一个边加入图中,判断图是否连通,不行则再加一条边,判断过程用并查集。找到没个下界对应的上界,找上下界差的最小值。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using 阅读全文
posted @ 2012-07-03 10:29
undefined2024
阅读(878)
评论(1)
推荐(0)
摘要:
题意:与2409类似,只是只能有3种颜色。分析:详见2409,注意输入0的情况。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>using namespace std;int n, m;int gcd(int a, int b){ b = b % a; while (b) { a = a % b; swap(a, b); } return a;}int main(){ //freope.. 阅读全文
posted @ 2012-07-03 09:13
undefined2024
阅读(236)
评论(0)
推荐(0)
摘要:
题意:给定颜色种数和环上的珠子总数,问有多少种染色方案(通过旋转和翻转相同的算同一种)。分析:polya定理。在这里只谈一下polya定理是如何应用的。对于排成一排的带编号的小球,按照某一种方案改变其中一些球的放置顺序,可以称之为置换。每一种置换方法可以用两排数字來表示,第一排数字和第二排数字一一对应,第一排数字表示小球的原来位置(1~n),第二排数字表示小球交换后的位置。现在我们有n个小球,m种颜色。有k种置换方法,我们认为能通过置换方法交换位置后变成同一种染色情况(颜色的排列状况相同,忽略小球编号),则我们认为这些互相通过置换能达到的状态为同一种染色方法。我们现在要求总共有多少种染色方法。 阅读全文
posted @ 2012-07-03 08:50
undefined2024
阅读(1349)
评论(0)
推荐(1)