soj水题报告
文章平均质量分 75
bin314
这个作者很懒,什么都没留下…
展开
-
一道线段树维护区间操作的题 soj4234 01Pairs
【题目链接】http://cstest.scu.edu.cn/soj/problem.action?id=4234【题目大意】给定一个长度为n(n①:将区间[l,r]的序号01翻转,0->1,1->0,如101翻转后为010②:求区间[l,r]中满足l 操作次数不超过10^5次。【分析】此题维护一个区间上的某些操作,使用线段树比较适合。原创 2012-11-18 16:48:11 · 1183 阅读 · 0 评论 -
soj1111 Gnome Tetravex dfs搜索
这也是黑书上的一道例题。先给个soj的链接:题目【题目大意】给定n*n(N问是否能将n*n个方块拼成任意两个相邻块的相邻面值相等。实例如下图:这是一个初始2*2的方块:它可以拼成如下图形,满足要求:分析:这是个典型的搜索问题,属于约束性搜索。搜索顺序从中间到两边能够比较快的剪掉一些枝。这里用bfs先计算出一个序列,再按照这个序列进行搜索。原创 2012-08-25 22:01:12 · 656 阅读 · 0 评论 -
从一道简单的题看算法优化 ZOJ PAT Course List for Student
一位好友保研后突然想做做ZOJ的PAT Practise,据说里面的题都比较水,但是还是不幸的卡在了Course List for Student (25)上面。这是PAT的链接:http://pat.zju.edu.cn/contests/pat-practise【题目大意】浙大有40000名同学和2500个课程。给出每门课的选课名单,现在有N个同学要查询他们的选课列表,请输出每个人原创 2012-11-08 20:34:22 · 2127 阅读 · 1 评论 -
soj3538 幸运数字 容斥原理应用
链接:soj3538【题目大意】:由6和8组成的数字都是lucky数字,其倍数也是lucky数字。求给定区间[l,r]有多少个lucky数字。(1 【分析】:若能求出[1,n]中有多少个lucky数字,问题即解。先求仅有6和8组成的数字,记为primLucky数,lucky数是primLucky数的若干倍,显然有容斥原理。Ai表示[1,n]中有多少个是primLucky原创 2012-09-20 14:20:49 · 1140 阅读 · 0 评论 -
soj4076 母函数应用
链接:soj先附个代码:#include #include #include typedef __int64 ll ;const ll mod = 1000000007 ;int a[7] ;inline bool get(int &t){ bool flag = 0 ; char c; while(!isdigit(c = getchar原创 2012-09-09 22:07:08 · 555 阅读 · 0 评论 -
素数环问题 hdu1016
【大意】给定数n(n【分析】经典的搜索问题。先搜索19+18以内的素数,记vis[i]:true表示i是合数,false表示是质数记can[i][j]:true表示i+j是素数,false表示是合数顺序从小到大搜索即可,注意相邻2个数必然奇偶不同,这样搜索到的结果满足字典序。由于是素数环要求,可以双向搜索,但结果不一定是字典序,可用set保存。【参考原创 2012-09-06 21:09:08 · 2518 阅读 · 0 评论 -
soj 4018upit解题报告 splay经典应用
时隔一年,终于解决了upit。。。先给个题目连接:soj:upit题目大意:维护一段序列,序列有4种操作:1.将[A,B]的值统一赋值为X2.将[A,B]的值每一个都添加X的若干倍,方法为第一个+X,之后的+2X,3X,.....,kX,如此递推3.在第C个数之前插入数值X4.求区间[A,B]的和。具体参考如下:序列初始长度为N,开始给出这N个数,之后又原创 2012-08-25 01:04:48 · 832 阅读 · 0 评论 -
soj4059 Towns along a Highway解题报告 经典dfs
这是11年集训时放的题目,当时深为不解,题目来源是coci。【大意】设有n个城镇city[0],city[1],……,city[n-1],city[i]与city[i+1]相邻( i 属于[0,n-2] ),其距离记为dist[i],若给出每两个城市之间的距离,则可以算出任意两个城市间的距离,共有n*(n-1)/2个。现在给出这n*(n-1)/2个距离,求每两个城市之间的距离,答案可能原创 2012-09-04 23:48:15 · 809 阅读 · 0 评论 -
二维数组的二分查找 解题报告
【题目大意】在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。【分析】排好序的一维数组二分查找的效率是O(logN),本例中是二维数组,但是有序的性质可以使得在局部,即一维状况下继续使用二分查找,通过合理的组织查找区间可以再O(NlogM)的时间内找到是否存在原创 2012-09-02 22:05:19 · 3338 阅读 · 1 评论 -
几道启发式搜索问题 soj2831
先mark一下。先附个A*的代码注意一下 判重的 问题#include #include #include #include #include #include #include using namespace std;const int maxn = 32 ;int n ;struct node { int depth ; int h ; char a原创 2012-08-31 21:43:13 · 731 阅读 · 0 评论 -
pat(basic level) practise 解题报告
pat基础训练:很基础,全是中文题,基本都模拟即可。1001. 害死人不偿命的(3n+1)猜想 (15) 计算1000以内需要多少次能将一个数变为1,模拟1002. 写出这个数 (20) 计算各位数字和,并用拼音输出1003. 我要通过!(20) 推荐,用递归去判断,注意PT不是1004. 成绩排名 (20)取分数最高和分数最低1005. 继续(3n+1)猜想 (25) 计原创 2013-04-11 22:35:34 · 1925 阅读 · 2 评论