zoj1037-Gridland】的更多相关文章

Gridland Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4996    Accepted Submission(s): 2281 Problem Description For years, computer scientists have been trying to find efficient solutions to d…
Gridland Time Limit: 2 Seconds      Memory Limit: 65536 KB BackgroundFor years, computer scientists have been trying to find efficient solutions to different computing problems. For some of them efficient algorithms are already available, these are t…
Problem Description For years, computer scientists have been trying to find efficient solutions to different computing problems. For some of them efficient algorithms are already available, these are the “easy” problems like sorting, evaluating a pol…
最重要的是找规律. 下面是引用 http://blog.sina.com.cn/s/blog_4dc813b20100snyv.html 的讲解: 做这题时,千万不要被那个图给吓着了,其实这题就是道简单的数学题. 首先看当m或n中有一个为2的情况,显然,只需要算周长就OK了.即(m+n-)*,考虑到至少其中一个为2,所以答案为2 *m或2*n,亦即m*n.注意这里保证了其中一个数位偶数. 当m,n≥3时,考虑至少其中一个为偶数的情况,显然,这种情况很简单,可以得出,结果为m*n,又可以和上面这种…
原题链接 题目大意:给出一个格子图,求走完所有节点的最短路径距离. 解法:简单啊,如果都是奇数,可以走一次斜边,其他情况就是长*宽. 参考代码: #include <stdio.h> int main(){ int i,k,m,n; double result; scanf("%d",&k); i=1; while(i<=k){ scanf("%d%d",&m,&n); printf("Scenario #%d:\…
题目链接 多写几个案例,根据数据的奇偶性,就能找到规律了 #include<stdio.h> int main() { int t,n,m; double ans; scanf("%d",&t); ;i<=t;i++) { scanf("%d%d",&n,&m); ans=n*m*1.0; ==&&m%==) ans+=0.41; printf("Scenario #%d:\n%.2lf\n\n&q…
果然是数学题 #include <iostream> #include <cstdio> #include <cmath> using namespace std; int n,a,b; int main() { cin>>n; ; while(n--) { printf("Scenario #%d:\n",k++); cin>>a>>b; ==||b%==) { printf("%.2lf\n"…
分析:给出一个矩阵.问最短从一个点经过全部点以此回到起点的长度是多少.绘图非常好理解.先画3*4.3*3.4*4的点阵图案.试着在上面用最短路走一走,能够发现当矩形点阵的长宽都是奇数时,最短路中必然有一条斜线:而仅仅要长或宽有一个是偶数就能够通过直线来完毕最短路经.因此仅仅需推断一下两边的奇偶情况就能求最短路径了. #include<iostream> #include<cmath> using namespace std; int main() { int T,t=0,m,n;…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1046 难点在于读懂题意 题意:输入一个n*m的点阵,间距为1,问你遍历完所有点阵并回到起点的最短路径是多少.(对角线是1.41) 画图找规律: 规律: 当n,m不全为奇数的时候,最短路径就是n*m: 当n,m全为奇数的时候,必然要走一条斜线,就多走了0.41(即根号2),最短路径即为:n*m+0.41. #include<stdio.h> int main() { int N; int m,n; in…
题目大意:先给出了TSP的背景,然后给出一个n*m的单位格点的图,图中除边缘上的点与八个方向的点有边连接,距离为欧拉距离,求从左上角出发的TSP 思路:从水题列表中看到的题,但看一开始给出的background是TSP就惊呆了,但看到题目觉得很好想.显然,行和列是对等的,并且当行列中有一个是偶数时都能像下图这样M状的遍历所有的点,通过割补发现线的长度为m*n.当m,n都为奇数时显然不能像上图那样遍历,因为是奇数,穿到下面后就没有点使它再回到上面了,但是发现增加一条斜边(长度为根号2)可以将问题转…