
ZOJ
南宮逸辰
喜欢听音乐,ACM旅途中
展开
-
ZOJ-1008-Gnome Tetravex
一道不算难的DFS题,但是这个题要注意下其测试数据存在重复方块,如果不考虑去重的情况就会超时。另外换行符不能多输出,Game 1: 分号后面还有一个空格~代码:#include#include#includeusing namespace std;const int maxn=30;struct node{ int top; int buttom; in原创 2013-05-16 16:29:37 · 630 阅读 · 0 评论 -
2013 ACM/ICPC 长沙网络赛-Goldbach
这个题当时比赛队友没做出来,比赛以后看了下, 发现其实并不算太难,只能说这几次真没状态+运气~思路:首先通过筛选法找出所有的素数,然后依次算出2个素数的和与积的个数,对于每次输入的n,采取如下措施:1、若n为素数,则答案+1;2、直接加上n由2个素数想加和相乘的所有情况数、3、对于3个数,我们只需要枚举第一个素数,因为根据前面我们已经得到所有2个素数相加和相乘的所有的情况数(分原创 2013-09-23 08:06:14 · 1474 阅读 · 0 评论 -
2013 ACM/ICPC 长沙网络赛-Candies
这个题大意是说n个学生站成一行,其中他们会告诉你他们手中的糖果(如果为-1则为他不愿意告诉你),然后后面会给你相邻3个人(如果存在,头尾是2个)的糖果之和,接下来有m次询问,每次询问让你输出地k个人最多有多少个糖果。唉,昨天比赛无限悲剧。通过题意我们可以知道,至少为3的倍数的人我们是可以求他手中有多少颗糖的,首先来考虑可以求出所有人的糖果的情况。1、不难发现,当人数为3的倍数,或3的倍原创 2013-09-23 12:20:01 · 1449 阅读 · 0 评论 -
ZOJ-1456-Minimum Transport Cost
用Floyd算法做,用spfa wa不知道为什么代码:#include#include#includeusing namespace std;const int maxn=133;const int inf=1<<29;int n,map[maxn][maxn],p[maxn][maxn],c[maxn];void Floyd(){ for(int k=1;k<=n原创 2013-05-30 18:12:27 · 735 阅读 · 0 评论 -
ZOJ-1232- Adventure of Super Mario
Floyd+DP最开始打算直接最短路径做的,后来觉得思路不对~网上参考了下大神的博客才知道这个题是Dp;转移方程为dp[i][j]=min(dp[k-1][j],dp[k][j]+map[k][i]),j表示的是使用鞋的次数,k表示的是枚举使用鞋的地点。代码:#include#include#includeusing namespace std;const int原创 2013-05-28 14:24:17 · 703 阅读 · 1 评论 -
ZOJ-1655-Transport Goods
求一个最长路径即可,注意重边的处理代码:#include#include#includeusing namespace std;const int maxn=101;int n,m,a[maxn];double map[maxn][maxn],dist[maxn];bool vis[maxn];void Dijkstra(){ memset(vis,0,sizeo原创 2013-05-27 21:23:00 · 838 阅读 · 0 评论 -
ZOJ-2750- Idiomatic Phrases Game
根据字符串间首尾4个字符是否相同建立新图,然后求一条从0点到n-1点的最短路径即可。Dijkstra代码:#include#include#includeusing namespace std;const int maxn=1001;const int inf=1<<29;struct node{ char front[5]; char back[5];原创 2013-05-24 11:38:27 · 554 阅读 · 0 评论 -
ZOJ-1586-QS Network
用Prime的 最小生成树题代码:#include#include#include#includeconst int maxn=1001;const int inf=1<<28;using namespace std;int n;int a[maxn],map[maxn][maxn],dist[maxn];int Prime(){ int ans=0;原创 2013-05-22 19:50:35 · 752 阅读 · 0 评论 -
ZOJ-1203-Swordfish
纯的最小生成树题,用Kruskal跑一遍即可。代码:#include#include#include#include#includeusing namespace std;struct node{ double x; double y;}a[101];struct Edge{ int from; int to; double va原创 2013-05-21 19:52:55 · 667 阅读 · 0 评论 -
ZOJ-1649-Rescue
BFS题,由于其存在可以消灭警卫的问题,所以其需要求出地图中每个方格的最小步数。更新的时候应该是如果当前值小于 格子的值才进行更新操作,否则是不用更新的。代码:#include#include#include#includeusing namespace std;const int maxn=205;struct node{ int x; int y;原创 2013-05-16 20:38:50 · 669 阅读 · 0 评论 -
ZOJ-2587-Unique Attack
判断最小割是否唯一,网上得到的算法。从S原创 2014-08-12 18:21:02 · 552 阅读 · 0 评论