- 博客(9)
- 收藏
- 关注
原创 bzoj1082: [SCOI2005]栅栏
这道题一看就是暴搜啊。。 但是暴搜明显会超时啊。。 所以想了想加了个二分。。 发现二分还是过不了啊。。 又是经过了大神的指导。。 发现有一个玄学剪枝啊。。 不想加详细的解释啊啊。。 自己看代码吧不解释了。。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int l,r,mid,s[1
2016-08-29 15:51:37 519
原创 bzoj1081: [SCOI2005]超级格雷码
这道题感谢yzh的指导.。。(我也不知道应不应该叫他大神) 这道题他发现了规律。。 以下内容转载yzh写的博客,欢迎到他的博客去看看。。 yzh博客主页 http://blog.csdn.net/mf_chris/article/details/52326615 假设是2 3: 答案是:00 10 20 21 11 01 02 12 22 分下组:00 10 20 21 11
2016-08-29 15:05:03 413
原创 bzoj1086: [SCOI2005]王室联邦
这道题有点坑。。 不用输出最优解。。 只需输出一组解。。 用一个栈来存当前省的城市。。 一个暴搜O(n)的算法就可以过。。 代码挺简单的。。#include<cstdio>#include<cstring>#include<iostream>using namespace std;struct node { int x,y,next;}a[2100];int len,la
2016-08-29 14:40:57 443
原创 bzoj1083: [SCOI2005]繁忙的都市
这道题比较水。。 让n个点联通,有m条边给你选,让最大的边最小。。 那么至少要n-1条边。。 然后把所有边快排一次。。 用并查集依次问这两点是否联通,不联通就加多这一条边。。 代码比较简单。。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct node { int x,
2016-08-29 07:37:14 377
原创 bzoj1088: [SCOI2005]扫雷Mine
这道题以前做过,比较简单 只要枚举前两个格子的状态后面的格子都可以确定了。。 这个方法也是上网学的。。 代码还是比较简单的。。通俗易懂#include<cstdio>#include<cstring>using namespace std;int a[11000],f[11000];int n;int main() { scanf("%d",&n);int ans=0;
2016-08-26 14:24:22 344
原创 bzoj1085: [SCOI2005]骑士精神
这道题不想说。。 一开始想到爆搜 打了一下只对了三个点 上网搜了一下发现是A*算法,看了一下不就是爆搜加剪枝。。 挺容易懂得。。 哈哈。。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int dx[9]= {0,-2,-2,-1,-1,1,1,2,2};const int
2016-08-26 10:03:04 349
原创 bzoj1087: [SCOI2005]互不侵犯King
这道题我作为初学者来看有些懵。。 上网搜了一下发现大神都说是状态压缩。。 所以就开始学了一下状态压缩 状态压缩就是把每一行的状态转化为2进制,0表示不填,1表示填,只问合法状态,不用把每一个状态都问一遍。。 对时间和空间都很节省。。 这道题的dp方程也不难想(只要你会状压)。。 学会了状压之后很快就做出来了。。这道题还是比较入门。。#include<cstdio>#include<cs
2016-08-25 11:02:14 427
原创 bzoj1037: [ZJOI2008]生日聚会Party
题目自己看,不解释。。 大概的题意就是一串由n个1m个0组成的01序列,使得任意一段0的数量与1的数量的差不超过k。求总方案数 这道题一看就知道是DP,但是这种DP对我初一来说比较恶心,上网搜了一下。 发现跟常规DP有点不太一样定义状态 f[i][j][x][y]; 表示前i个人有j个男孩 当前这个位置最长的一段男生人数-女生人数= x 当前这个位置最长的一段女生人数-男生人数
2016-08-24 10:50:42 223
原创 bzoj1042: [HAOI2008]硬币购物
题意不用说了吧。一看大概就知道是背包。。 但是用背包做了半天还是没做出来 经过一位神犇的指导知道了这题要用到容斥原理 先两个for搞出4种硬币没有限制的情况下的方案数 我们要求的答案 Ans 就是 f[S] - (硬币1超限制的方案数) - (硬币2超限制的方案数) - (硬币3超限制的方案数) - (硬币4超限制的方案数) + (硬币1,2超限制的方案数) + (硬币1,3超限制的方案数)
2016-08-24 09:18:55 194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人