![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
杂题
文章平均质量分 63
yrleep
大学毕业不久,ios游戏自由开发者。
展开
-
poj 2996 Help Me with the Game
简单模拟#include #include #include using namespace std;const int maxn=101;char a[maxn][maxn];char match[10]={0,'K','Q','R','B','N','P'};int main(){// freopen("in.txt","r",stdin); int t=原创 2013-04-14 19:39:31 · 541 阅读 · 0 评论 -
hdu 4776 Ants 杭州现场赛G题
杭州现场赛的题目,首先求出每个节点到根节点的xor值,那么两个节点路径的xor值就等于他们到根节点的xor值再xor。那么就会有n*n个xor值,但是题目值要求前面的k个,并且k小于200000.那么就可以这么搞了,先找xor之后最高位为1的,看看有多少个,如果大于k,那么证明前k大的全部在里面,再找次高位的就可以,否者,把这些数全部找出来并排序,剩下的再在这一位不为一的那里找。#原创 2013-11-10 23:41:51 · 2494 阅读 · 0 评论 -
hdu 4429 Split the Rectangle
读懂题意之后就是简单的暴力找一个最小的矩形去包围这两个点,然后把这个矩形内部的点全部去掉,就可以得出答案。#include #include #include using namespace std;const int maxn=2e3+9,inf=1e9;int n,q;int lonl,lonr;struct{ int x1,x2,y1,y2;}line[m原创 2013-11-06 20:15:43 · 886 阅读 · 0 评论 -
hdu 4099 Revenge of Fibonacci
暴力求出前十万的斐波那契数列,然后存储起来,后面再查找就好了。存储的话建议两种方式,一种是字典树,一种是hash,当然这个题目用字典树会更好。#include #include #include #pragma comment(linker, "/STACK:36777216")using namespace std;const int mod=10;struct add原创 2013-11-04 19:42:44 · 756 阅读 · 0 评论 -
hdu 4766 Network 长春网络赛 1008 计算几何
可以得出一个结论,得到最优距离的那个点a,要么是目标点,要么就是距离某个点距离为d的点。第二种情况有两种情形:1:仅仅距离一个点b的距离为d,那么a必定位于目标点到b的连线上。 2:至少距离两个点的距离为d。那么就可以分别枚举这三种情况了。#include #include #include #原创 2013-09-28 22:11:45 · 2391 阅读 · 7 评论 -
poj 3168 Barn Expansion 排序
把每个横坐标边,纵坐标边分别排序,判断是否相邻即可。#include #include #include #include using namespace std;const int maxn=25e3+9;int n;bool use[maxn];struct{ int a,b,c,d;}data[maxn];struct A{ int key,d原创 2013-10-04 19:25:27 · 1235 阅读 · 0 评论 -
poj 2166 构造
一个看了解题报告才能想明白的题目,第一点比较容易想明白,就是每次把1交换到堆顶之后如果能够换到最后面的位置那么一定是最优的,但是怎么实现这个没有想明白。题解的那种构建方法,及从2开始插入,是可以保证达到上述效果的,这个自己想想就能明白。#include #include #include using namespace std;const int maxn=5e4+9;int h原创 2013-09-02 20:15:57 · 1204 阅读 · 0 评论 -
poj 2201 构造
这个题目的构造方法应该还算是很好想的,先给a按照从小到大排序,然后按顺序插入数据,构造一棵二叉查找树,而且50000的数据,nlogn的做法,应该还是很好的。不过这个题目的编码比想象中要麻烦一点,并且编码完成后居然返回了一个tle。表示不能理解,生成了一个大数据后,发现如果排序后k也有序,那么就会二叉树退化,n*n的复杂度。简单画画图可以找到一个优化,先找要插入数据的后继或者前驱,然后从哪个位原创 2013-09-02 19:49:16 · 984 阅读 · 0 评论 -
poj 3623 Best Cow Line, Gold
题目不算难,但是不认真想的话很容易wa,我就是wa了多次才意识到自己想法存在的缺陷。相同的时候往后找知道出现不相同时,只能判断出当前字符的优先顺序,#include #include #include using namespace std;const int maxn=3e4+9;char a[maxn],ans[maxn];int main(){ int n;原创 2013-08-30 20:20:19 · 1014 阅读 · 0 评论 -
poj 3269 Building A New Barn
#include #include #include #include #include using namespace std;const int maxn=1e4+9;int x[maxn],y[maxn];struct D{ int x,y; bool operator <(const D &xx)const { if(x==xx.x原创 2013-08-30 14:41:01 · 1146 阅读 · 0 评论 -
poj 3263 Tallest Cow
一个压了很久的题目,确实很难想,看了别人的做法后总算明白了。首先要明白一点,因为题目说明了不会有矛盾,所以题目给出来的区间是不能相交的,否则是矛盾的。(原因自己想)然后既然区间只能是包含的,就很明显了,一个数被包含了几次它就要比最高的牛矮多少。#include #include #include #include using namespace std;const int m原创 2013-08-29 00:07:25 · 1195 阅读 · 0 评论 -
poj 1944 模拟 枚举
因为肯定会有没有连接上的边加上只要有一条没有连接上的边,每个顶点对的连接就被确定了。所以可以枚举断开的边,然后确定顶点对之间的连接状态。但是统计那些边的连接状态也不容易。刚开始想到的是循环标记每条边的状态,但是这样复杂度就高了。然后看了别人的题解,是用d[i]=j,表示i到j连接上了。#include #include #include原创 2013-04-14 19:40:48 · 563 阅读 · 0 评论 -
poj 2189 Romeo Meet juliet 枚举
这个题目确实不是个好题目,题目意思容易出现歧义,p不是区域,而是端点,端点之间的才是区域,告诉你每个牛的位置,然后枚举一段连续的最长的区间,使它包含的牛不超过c。大水题#include #include #include using namespace std;const int maxn=1e3+9;int a[maxn];int ans;原创 2013-04-14 19:41:01 · 824 阅读 · 0 评论 -
poj 2190 isbn 模拟
题目简单但是很容易错X只能出现在最后一位 就是考细心#include#include#includeusing namespace std;char a[101];int main(){ scanf("%s",&a[1]); intans=0,tmp; for(inti=1;i { if(a[i]=='?') t原创 2013-04-14 19:40:35 · 516 阅读 · 0 评论 -
poj 1001 Exponentiation 高精度
#include#include#includeusing namespace std;const int maxn=211;char a[maxn+1];int ans[maxn+1],tmp[maxn+1];int n;int t1[maxn];int muti(int ans[],int tmp[]){ memset(t1,0,sizeof(t1));原创 2013-04-14 19:39:55 · 476 阅读 · 0 评论 -
poj 1218
简单模拟#include #include#includeusing namespace std;int a[10001];int main(){ inttime; scanf("%d",&time); while(time--) { memset(a,0,sizeof(a)); int n; scan原创 2013-04-14 19:36:58 · 485 阅读 · 0 评论 -
hdu 4082 Hou Yi's secret 枚举
题目不难但是想ac也不容易第一个问题。怎么判断三角形相似,如果用除法来判断,则要考虑精度问题,挺麻烦的。 我用的是交叉相乘的办法。第二个问题。重点的问题,重点算一个点。这个不特判基本就wa到死了。第三个问题。存边的时候存的是实际长度还是平方的,存实际长度的话又有精度问题。所以应该存平房的点。第四个问题。如果存平方的点,那么判原创 2013-04-14 19:39:48 · 788 阅读 · 0 评论 -
hdu 4466 Triangle
对于长度为n的三角形的个数是靠打表找出来的规律,就不解释了。然后这个三角形最大公约数为1,那么就可以用筛选法来做。最后计算答案就o(n)扫描的计算,这个比较简单,不解释了。#include #include #include using namespace std;const int maxn=5e6+111,mod=1e9+7,N=5e6;int sum[maxn],p原创 2013-11-12 00:28:15 · 951 阅读 · 0 评论