上一页 1 2 3 4 5 6 7 8 9 10 ··· 26 下一页
摘要: #include#include#include#include#include#includeusing namespace std;#define MAXN 9999#define MAXSIZE 1000#define DLEN 4class BigNum{private: int a[... 阅读全文
posted @ 2014-09-27 15:49 紫忆 阅读(4287) 评论(2) 推荐(0) 编辑
摘要: 好久没写博客了,中间做过dp\搜索\图论的其他知识,也遇到了一些好题,但是都没有写下来,有些可惜----bool dfs(int a,bool flg){ for(int i=1;i#include#include#includeusing namespace std;struct node{... 阅读全文
posted @ 2014-07-31 11:52 紫忆 阅读(266) 评论(0) 推荐(0) 编辑
摘要: http://acm.fzu.edu.cn/problem.php?pid=2157这是一道很水的树形dp吧,本来不想写它的题解的,不过比赛的时候,队友说要我做这个题目,但是由于我感觉另一个题目可以出,而放弃做这个题目.....本来可以多出一道的,结果......以后的比赛中,还是得多多注意这个方面的问题。题意:给出n个点,每个点都有两种花费,一个是0种花费,一个是1种花费,每两个点相连,边也有花费,是随着点所取话费的种类不同,边的花费也不同,边有四种花费,00,01,10,11 问建成整颗树所需要的最少花费。思路:dp[i][0]代表当前结点取0种花费时建好以i结点为根节点的最少花费,dp. 阅读全文
posted @ 2014-03-29 16:37 紫忆 阅读(386) 评论(0) 推荐(0) 编辑
摘要: http://acm.fzu.edu.cn/problem.php?pid=2158在密室逃脱游戏中,大家被困在一个密室中,为了逃出密室,需要找到正确的数字密码,于是大家分头行动,分别找到了密码的子序列,而后大家将得到的线索集中整理分析,大家想知道密码最少是多少位。第一行输入一个整数T,表示数据组数。接下来T组数据,对于每组数据,第一行输入一个整数n (1#include#includeusing namespace std;int len[8],n,flag,p,dp[8][10];char s[8][8];int deal(){ int maxn=0; for(int i=0;... 阅读全文
posted @ 2014-03-29 16:21 紫忆 阅读(648) 评论(0) 推荐(0) 编辑
摘要: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1356题意:给出一个起始点,一些边,有人从这个起始点开始随意走,问在某一个时候,它是否可以处于任意位置。思路:思考下,就可以明白,只要是一个联通图,并且存在奇数点形成的环,那么在某一个时候就可以处于任意位置。如何判断存在一个奇数点形成的环?染色法:就是给每个点进行标号,标为-1,1如果存在一条边连接的两个点标号相同,那么就是存在一个奇数环......代码:#include #include #include #include #include #include using namespace s 阅读全文
posted @ 2014-03-29 16:11 紫忆 阅读(1139) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2014-03-12 19:40 紫忆 阅读(177) 评论(0) 推荐(0) 编辑
摘要: void RMQ_init(){ for(int i=1; i<=n; i++) dp[i][0]=s[i]; for(int j=1; (1<<j)<=n; j++) for(int i=1;i+(1<<j)-1<=n;i++) dp[i][j]=max(dp[i][j-1],dp[i+(1<<(j-1))][j-1]);}int RMQ(int L,int R){ int k=0; while((1<<(k+1))<=R-L+1) k++; return max(dp[L][k],dp[R-(1<<k)+1 阅读全文
posted @ 2014-03-09 14:38 紫忆 阅读(943) 评论(0) 推荐(0) 编辑
摘要: 题意:在一个平面上,有若干个球,给出球的坐标,每次可以将一个球朝另一个球打过去(只有上下左右),碰到下一个球之后原先的球停下来,然后被撞的球朝这个方向移动,直到有一个球再也撞不到下一个球后,这个球飞出,球只能是朝上下左右四个方向打,并且要一个球四个方向都没有球了,这个球就不能打了。问说最少平面上剩几个球,并且给出打球的方案。思路:把四个方向可以连成一块的球用一个并查集连起来,有多少个并查集,最后就会剩下多少个球,然后就是从并查集的叶子节点往根结点输出路径。这里要注意,不能重复输出,还有就是,在击打球的时候,有一个先后顺序,我们输出的时候,必须严格按照这个顺序,就是说,每次必须先把父节点所有的枝 阅读全文
posted @ 2014-03-04 22:57 紫忆 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 给出n个点,要你找到一个三角形,它的高是最长的。思路:暴力超时了,是用先找出n个点与其他点的最长边,再枚举顶点过的.......具体证明不知道.....#include#include#include#includeusing namespace std;#define eps 1e-8struct point{ double x; double y;};//点到直线的最短距离//bool vist[500][500][500];point intersection(point u1,point u2,point v1,point v2){ point ret=u1; ... 阅读全文
posted @ 2014-03-04 22:49 紫忆 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 给出一个64位的大数,如何快速判断其是否为素数#include#include#include#includeusing namespace std;typedef long long LL;LL n,m;//****************************************************************// Miller_Rabin 算法进行素数测试//速度快,而且可以判断 =mod) ans=ans-mod; } a=a=mod) a=a-mod; b=b>>1; } return ... 阅读全文
posted @ 2014-03-04 22:45 紫忆 阅读(3796) 评论(1) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 26 下一页