上一页 1 2 3 4 5 6 ··· 57 下一页

2012年3月26日

sicily 1750. 运动会

摘要: #include<iostream> //分组背包问题#include <stdio.h>#include<cstring>using namespace std;struct node{ int val,cost;}table[102][102];int D[102],E[102],M[102],len[102];int dp[1002];int main(){ int cases; cin>>cases; while(cases--) { int P,N; cin>>P>>N; for(int i=0;i... 阅读全文

posted @ 2012-03-26 20:14 sysu_mjc 阅读(224) 评论(0) 推荐(0) 编辑

2012年3月25日

poj 1979 Red and Black

摘要: // 题意: 给定一矩形棋盘,上面仅有黑棋和红棋,要求只能在黑棋上移动,// 规定移动方向是上下左右. 给定一起点,求从起点可到达的所有黑棋的个数(包括起点)#include<iostream>#include <string.h>using namespace std;const int MAXN=25;int g[MAXN][MAXN],vis[MAXN][MAXN];int mv[4][2]={{0,1},{0,-1},{1,0},{-1,0}};int cnt;void dfs(int x,int y){ if(!g[x][y]||vis[x][y]) retu 阅读全文

posted @ 2012-03-25 21:03 sysu_mjc 阅读(119) 评论(0) 推荐(0) 编辑

2012年3月24日

poj 1789 Truck History

摘要: // 题意: 用7个小写字母来表示truck的型号,每两种型号之间的差距为字母串中不同字母的个数。// 现在给出n种不同型号的truck,要求找到一条连接所有truck的最短路径// 求最小生成树的路径和#include<iostream> //最小生成树prim算法using namespace std;const int MAXN=2002; //最大顶点数int n,edge[MAXN][MAXN]; //n记录顶点数struct MST //最小生成树的边{ int s,t,w;}mst[MAXN];int Prim(){ ... 阅读全文

posted @ 2012-03-24 10:42 sysu_mjc 阅读(138) 评论(0) 推荐(0) 编辑

2012年3月22日

poj 1811 Prime Test

摘要: // 给出一个大数(unsigned __int64),判断是否素数,若不是素数,则输出最小的素因子// 素数判断用miller法 分解用pollard法 #include <iostream>#include <time.h>#include <cmath>using namespace std;unsigned __int64 chen(unsigned __int64 x,unsigned __int64 y,unsigned __int64 n)//计算x*y%n{ if ((x>>32)==0&&(y>>32 阅读全文

posted @ 2012-03-22 01:25 sysu_mjc 阅读(169) 评论(0) 推荐(0) 编辑

2012年3月18日

poj 2992 Divisors

摘要: /* 题意: 求 组合数 C(n,m)= n! / ( (n - m)! * m! ) 的 因数 个数,n<=431 设 n 的标准质因数分解式为 n = p1^a1 * p2^a2 *...* pk^ak , p1,p2..pk是素数 则 n 的 因数 个数 = (a1+1) * (a2+1) *...* (ak+1) 对于任意素数 p ,n!中有( n / p + n / p^2 + n / p^3 +...)个质因子 p 思路: 先打素数表,再对每个素数p求在C(n,m)的个数a,相乘即得结果*/#include <iostream> // 求 组合数 C(n,m)= 阅读全文

posted @ 2012-03-18 14:50 sysu_mjc 阅读(199) 评论(0) 推荐(0) 编辑

sicily 1153. 马的周游问题[Special judge]

摘要: // 与sicily 1152 题意完全一样,但数据量大很多,直接深搜肯定会TLE,需要剪枝// 可以先搜索扩展性最差的点,这样能有效减少路径数#include <iostream> // DFS#include<stdio.h>#include <algorithm>using namespace std;int vis[10][10],path[100],rear,suc;int mv[8][2]={{-1,-2},{-2,-1},{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2}};bool in(int x,int y){ 阅读全文

posted @ 2012-03-18 01:36 sysu_mjc 阅读(306) 评论(0) 推荐(0) 编辑

sicily 1152. 简单的马周游问题[Special judge]

摘要: #include <iostream> // DFS#include<stdio.h>#include <cstring>using namespace std;int vis[10][10],path[100],rear,suc;int mv[8][2]={{-1,-2},{-2,-1},{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2}};void dfs(int x,int y){ int newx,newy; for(int d=0;d<8;++d) { newx=x+mv[d][0]; newy=y+mv... 阅读全文

posted @ 2012-03-18 01:16 sysu_mjc 阅读(260) 评论(0) 推荐(0) 编辑

2012年3月17日

poj 1681 Painter's Problem

摘要: /* 题意:类似于poj 1222 EXTENDED LIGHTS OUT ,只不过换成了格子是黄色(0)还是白色(1), 要求输出最小次数,并且不保证有唯一解。所以如果方程组 (1)无解,输出"inf" (2)有唯一解,当然输出唯 一解; (3)无穷解:需要枚举自由元的状态,即如果有两个自由元我们需要枚举 (1<<2) 个状态,再比较得出最小的次数 但本题数据较水,不需枚举,每次将自由变量置为0一样可以过. 而且因为x[]初始化为0,所以直接对x[i]=1进行计数就好了*/#include <iostream> //高斯消元#include < 阅读全文

posted @ 2012-03-17 14:29 sysu_mjc 阅读(268) 评论(0) 推荐(0) 编辑

poj 1830 开关问题

摘要: // 题意:给出n盏灯的初始状态以及最终状态,和改变哪些灯的状态会影响哪些灯的关系,// 求使初始状态变换到最终状态的方法总数。// 思路: 把开关是否按下看做一未知元,由每个开关的状态是否需要改变可以列出n个方程,// 可通过高斯消元解方程组。由于题目求的是方法总数,而每一个自由变元(灯)只有两种状态,即开或关,// 所以k个自由变元的方法总数就为2^k#include <iostream>#include <cstring>using namespace std;#define MAXN 29int equ, var, n;int a[MAXN][MAXN];int 阅读全文

posted @ 2012-03-17 13:29 sysu_mjc 阅读(141) 评论(0) 推荐(0) 编辑

poj 1222 EXTENDED LIGHTS OUT

摘要: /* 题意:对于一个5*6的格子,每个格子表示一个灯,每次按下一个按钮,这个按钮和它的上下左右相邻按钮将同时切换各自的亮灭状态, 给定初始状态,问怎么按才能使所有的灯全灭,0表示灯灭,1表示灯亮 注意到每个灯至多只按一次,而按的顺序不影响结果,题目保证有解, 把[i][j]投影到[i*6+j],数组a,x的下标从0开始,线性方程组如下: a(0,0) * x0 + a(0,1) * x1 +...+ a(0,29) * x29 = b0 = a(0,30) a(1,0) * x0 + a(1,1) * x1 +...+ a(1,29) * x29 = b1 = a(1,30) a(2,0) . 阅读全文

posted @ 2012-03-17 09:41 sysu_mjc 阅读(308) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 57 下一页

导航