随笔分类 -  ACM_搜索

摘要:本以为要用tarjan求割点的,因为当时看错题以为有m次询问。。。后面仔细看了下,发现只查询一次,直接暴力( O(n*m)用邻接表 )就可以过去了。裤子都脱了,就给我写这个这题还有O(m)的算法,以u为树根用tarjan求一次割点,在没得到一个割点的时候判断u v是否在两侧,统计次数。时间限制:1.... 阅读全文
posted @ 2015-03-25 20:58 chenhuan001 阅读(684) 评论(0) 推荐(0) 编辑
摘要:原以为是用搜索做的题,想了好久都无法想到一个高效正确的解法。后面发现竟然这就是矩阵的应用! 碉堡!给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值 ——选自matrix67把给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j。令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),实际上就等于从点i到点j恰好经过2条边的路径数(枚举k为中转点)。类似地,C*A的第i行第j列就表示从i到j经过3条边的路径数。同理,如果要求经过k步的路径数,我们只需要二分求出A^k即可。K -MistwaldTime Limit:2000MSMemor 阅读全文
posted @ 2013-11-13 21:36 chenhuan001 阅读(361) 评论(0) 推荐(0) 编辑
摘要:简单bfs,位运算判重 ,瞬间秒杀翻纸牌游戏Time Limit: 9000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1574Accepted Submission(s): 515Problem Description有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌。但是麻烦的是,每当你翻一张纸牌(由正翻到反,或者有反翻到正)时,他左右两张纸牌(最左边和最右边的纸牌,只会影响附近 阅读全文
posted @ 2013-05-05 02:07 chenhuan001 阅读(209) 评论(1) 推荐(0) 编辑
摘要:刚刚看到很多人都用DFS+剪枝做数独。。 顿时不爽了, 我家DLX 何在。。。不过想想确实这个搜索剪枝真的很多,不过怎么说还是DLX 快...#include <stdio.h>#include <string.h>#include <iostream>using namespace std;#define N 300000#define INF 0x3fffffffchar g[10][10];int ans[1000];int u[5000],d[5000],r[5000],l[5000],num[5000],H[1000],save[5000],sav 阅读全文
posted @ 2013-04-10 12:31 chenhuan001 阅读(211) 评论(0) 推荐(0) 编辑
摘要:1. 精确覆盖int U[N],R[N],D[N],L[N],num[N],H[N],col[N],line[N];int head,id,flag;int nn,mm;void prepare(){ id=mm; for(int i=0;i<=mm;i++) { num[i]=0; U[i]=i; D[i]=i; R[i]=i+1; L[i+1]=i; } R[mm]=0; L[0]=mm; memset(H,-1,sizeof(H));}void link(int tn,int... 阅读全文
posted @ 2013-04-09 07:04 chenhuan001 阅读(198) 评论(0) 推荐(0) 编辑
摘要:貌似是一道区域赛的题目。 和数独有着相似之处。。。题目的关键在于建图, 然后要注意的是重边!Power StationsTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1566Accepted Submission(s): 409 Special JudgeProblem DescriptionThere are N towns in our country, and some of them are connected by electri 阅读全文
posted @ 2013-04-08 21:56 chenhuan001 阅读(213) 评论(0) 推荐(0) 编辑
摘要:用了点离散化的处理, 然后二分一下就可以了。。。RadarTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1928Accepted Submission(s): 796 Problem DescriptionN cities of the Java Kingdom need to be covered by radars for being in a state of war. Since the kingdom has M radar st 阅读全文
posted @ 2013-04-08 13:50 chenhuan001 阅读(209) 评论(0) 推荐(0) 编辑
摘要:简单重复覆盖题。。。whosyourdaddyTime Limit: 20000/10000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1022Accepted Submission(s): 502 Problem Descriptionsevenzero liked Warcraft very much, but he haven't practiced it for several years after being addicted to algorithms. N 阅读全文
posted @ 2013-04-08 13:48 chenhuan001 阅读(169) 评论(0) 推荐(0) 编辑
摘要:重复点覆盖的题, 建好图就可以直接A 了。。。Bomberman - Just Search!Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 497Accepted Submission(s): 276 Problem DescriptionBomberman has been a very popular game ever since it was released. As you can see above, the game is p 阅读全文
posted @ 2013-04-08 13:45 chenhuan001 阅读(136) 评论(0) 推荐(0) 编辑
摘要:可以重复的点覆盖, 写法和一般的DLX 很相似,但是在找到选择一行的时候,只删去这一行上所有点的列。 还要注意的是启发函数起了很大的剪枝作用。 Problem 1686 神龙的难题 Accept: 331 Submit: 1111 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description这是个剑与魔法的世界.英雄和魔物同在,动荡和安定并存.但总的来说,库尔特王国是个安宁的国家,人民安居乐业,魔物也比较少.但是.总有一些魔物不时会进入城市附近,干扰人民的生活.就要有一些人出来守护居民们不被魔物侵害.魔法使艾米莉就是这样的一 阅读全文
posted @ 2013-04-08 13:42 chenhuan001 阅读(251) 评论(0) 推荐(0) 编辑
摘要:16*16的数独, 跟9*9的类似。。。SudokuTime Limit:10000MSMemory Limit:65536KTotal Submissions:3683Accepted:1799DescriptionA Sudoku grid is a 16x16 grid of cells grouped in sixteen 4x4 squares, where some cells are filled with letters from A to P (the first 16 capital letters of the English alphabet), as shown in 阅读全文
posted @ 2013-04-05 15:29 chenhuan001 阅读(229) 评论(0) 推荐(0) 编辑
摘要:和之前那道数独一样。。。 搜索很强大。只用了47msSudokuTime Limit:1000MSMemory Limit:65536KTotal Submissions:7108Accepted:2498DescriptionIn the game of Sudoku, you are given a large 9 × 9 grid divided into smaller 3 × 3 subgrids. For example, .2738..1..1...6735.......293.5692.8...........6.1745.364.......9518... 阅读全文
posted @ 2013-04-05 15:28 chenhuan001 阅读(212) 评论(0) 推荐(0) 编辑
摘要:第一次做数独的题目, 最纠结的是建矩阵无疑。。。 想了N久才把这个矩阵给弄好,真的是很麻烦。 但是确实DLX 好快,解数独几乎是秒杀。。。SudokuTime Limit:2000MSMemory Limit:65536KTotal Submissions:11405Accepted:5645Special JudgeDescriptionSudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smaller squares 3x3 as shown on the Figure 阅读全文
posted @ 2013-04-05 13:48 chenhuan001 阅读(243) 评论(0) 推荐(0) 编辑
摘要:其实是一道DLX的简单题, 可是我做了两天,虽然这两天做的很间断,但是我懂的了一些东西。并不是你算法对的,感觉跟别人的代码差不多就可以达到和别人一样的效果, 这题算法大家都一样但是写出的程序速度却相差有10倍。 我就是因为写的烂,然后一直TLE,一开始我以为是哪里死循环了,后面一直TLE,看了别人的代码,然后一点一点的修改,最后才能过。。。一定要注意自己代码的风格, 一些细节,能省就省,尤其是这种复杂度不定的搜索题, 更是要注意能省一点是一点!Treasure MapTime Limit:2 Seconds Memory Limit:32768 KBYour boss once had got 阅读全文
posted @ 2013-04-04 10:21 chenhuan001 阅读(322) 评论(0) 推荐(0) 编辑
摘要:第一道DLX 的题, 算是模板题吧。看了很久的论文才看懂, 双向十字链表第一次写还是有点纠结。 但是耐心点还是没有问题的。搜素的优化,感觉这个超高效率的优化应该可以应用在很多方面。 在实现的过程中还有一个需要注意的东西,就是remove 和resume 要对称,不然就可能导致时间很慢或错误。。。#include <stdio.h>#include <string.h>#include <iostream>using namespace std;#define N 111000#define INF 0x3fffffffint n,m;int g[1010][ 阅读全文
posted @ 2013-03-20 16:38 chenhuan001 阅读(179) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示