分析:给出一个矩阵,问最短从一个点经过所有点以此回到起点的长度是多少。画图很好理解,先画3*4、3*3、4*4的点阵图案,试着在上面用最短路走一走,可以发现当矩形点阵的长宽都是奇数时,最短路中必定有一条斜线;而只要长或宽有一个是偶数就可以通过直线来完成最短路经,因此只需判断一下两边的奇偶情况就能求最短路径了。
#include
#include
using namespace std;
int...
分类:
其他好文 时间:
2015-06-05 17:35:22
阅读次数:
97
分析:告诉房子的坐标,每年以(0,0)为圆心的一个半圆面积会增加50,问多少年后这个房子的位置会在那个半圆内。注意pi必须取3.1415926才能过。
#include
#include
using namespace std;
#define PI 3.1415926 //3.141592654就WA
int main()
{
int T,t=0,year;
d...
分类:
其他好文 时间:
2015-06-05 15:52:46
阅读次数:
129
分析:大实数乘方计算。
#include
#include
using namespace std;
struct BigReal //高精度实数
{
int len; //长度
int num[10000];
int point; //小数点位置
BigReal()
{
len=1;
point=0;
memset(nu...
分类:
其他好文 时间:
2015-06-05 15:46:40
阅读次数:
107
题意:n个同学,一些男女同学会有缘分成为情侣,求集合中不存在有缘成为情侣的最大同学数。
分析:独立集,图的顶点集的子集,其中任意两点不相邻;
二分图:最大独立集 = 顶点数 - 最大匹配数。
本题是从整个点集搜索,并不是将点集分开成(A)(B),即(1->2)(2->1)对称存在,所以相当于搜索了两遍。因此真正最大匹配数等于最大匹配数/2。
#include
using names...
分类:
其他好文 时间:
2015-06-05 14:05:09
阅读次数:
136
分析:n种家庭作业,全部做完有n!种顺序,但是n!太大了,而且对于作业1,2,3和1,3,2和2,1,3和3,2,1和3,1,2的顺序来说完成它们消耗的天数是一样的,只是顺序不同从而扣分不同,所以可将完成相同的作业的所有状态压缩成一种状态并记录扣的最少分即可 。
状态压缩DP采用二制进的思想,1, 0代表完成否,如:3的二进制为11, 代表完成了一,二科目的状态, 101代表完...
分类:
其他好文 时间:
2015-06-05 12:23:57
阅读次数:
103
分析:水题。
#include
using namespace std;
#define N 5050
char a[N],b[N],tmp[N];
void Read(char p[])
{
getchar();
gets(tmp);
while(gets(tmp))
{
if(strcmp(tmp,"END")==0) break;
if(strlen(tmp)!=0) ...
分类:
其他好文 时间:
2015-06-05 12:19:38
阅读次数:
132
分析:利用栈处理。遇到矩阵时入栈;遇到“)” 弹出两个矩阵进行运算,并将结果压栈。另外在矩阵相乘时注意两个矩阵是否满足相乘条件。
#include
#include
#include
#include
using namespace std;
#define N 30
struct node
{
char m;
int r,c;
} a[N];
string s;
bool proces...
分类:
其他好文 时间:
2015-06-04 15:53:34
阅读次数:
141
题意:有n个数(a1,a2,...,an),进行k次删除一个数的操作,使得剩下的n-k个数中有最多的不同的种数。输出最多剩下的不同的数的种数。
#include
using namespace std;
int main()
{
int map[105];
int i,n,k,sum,a;
while(cin>>n)
{
sum=0;
memset(map,0,s...
分类:
其他好文 时间:
2015-06-04 15:52:45
阅读次数:
120
分析:放过炮台的标记为' @ '(回溯要还原) 递归,下一次遍历时向四个方向延伸(一行或者一列),找到'@' 则标记为不行,若找到'X'或边界则标记为行。
这题貌似还可以用二分匹配做。
#include
using namespace std;
#define N 5
char map[N][N];
int dir[4][2]={-1,0,0,-1,1,0,0,1};
int n,max;
...
分类:
Web程序 时间:
2015-06-04 15:46:18
阅读次数:
150
分析:注意格式的处理。
#include
using namespace std;
#define N 110
int op[N],sum[N];
char in[N];
void SUM()
{
int i,len;
memset(sum,0,sizeof(sum));
while(scanf("%s",in)&& strcmp(in,"0"))
{
memset(op,0...
分类:
其他好文 时间:
2015-06-04 15:43:21
阅读次数:
220