ACM
15zhazhahe
打杂小能手/吃/喝/睡/胖/菜/
展开
-
Ural 2063 Black and White【有意思】
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=2063 题意:只输入一个m,表示共进行m轮游戏,每轮游戏都会提供给你一个只含有01的字符串,第一场游戏字符串长度为2,第二场尾3……输出? x y表示x位置和y位置的元素交换,! x y表示你认为x位置和y位置的元素相等(正确率要在80%以上) 解析:题目意思相当于你输出指令交换这个字符串里的元原创 2017-02-16 20:09:14 · 408 阅读 · 0 评论 -
URAL 1910. Titan Ruins: Hidden Entrance
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1910 题意:给你一个序列,让你求出最大的连续三个数的和,并这个和 和输出中间那个数的位置 解析:扫一遍,直接做#include <iostream>#include <algorithm>#include <vector>#include <cstdio>#include <cstri原创 2017-02-13 20:49:13 · 544 阅读 · 0 评论 -
Ural 2067 Friends and Berries 【思维】
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=2067 题意:给你2*1e5个点,定义最好的朋友是指,u和v的距离大于或等于u,v,w相互三条边的距离之和的一半,w为除了u,v任意一个点,u,v不可重复,让你输出有几对最好的朋友,并输出编号 解析:因为三点如果不共线,另外两点不可能大于三角形周长的一半,所以只能是三点共线的情况,而且u,v必须原创 2017-02-16 20:53:44 · 598 阅读 · 0 评论 -
Ural 2069 Hard Rock
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=2069 题意:给你n条竖线m条横线,让你求,从右上角到左下角的所有路线的每条路线中的最小值最大,输出最大值 解析:根据给出的这个图的特点,竖着的线值是一样的,横着的线是一样的,路线总共有四种情况: 1、竖到底再横着走。 2、横到底再竖着走。原创 2017-02-16 21:22:40 · 442 阅读 · 0 评论 -
hdu5901 Count primes
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5901 题意:让你求1到n里有多少个素数 解析:多校的时候,分段打表写的,等了一个多小时……#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <string>#include原创 2017-02-16 21:46:28 · 2397 阅读 · 1 评论 -
POJ 3278 Catch That Cow 【BFS】
题目链接:http://poj.org/problem?id=3278 题意:假设一个人在位置x,那么他下一分钟能到达的位置是x-1,x+1,2*x,现给出你n,k,让你求从n到k最少所花费的时间 解析:直接bfs#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmat原创 2017-02-17 09:43:53 · 301 阅读 · 0 评论 -
POJ 1426 Find The Multiple 【BFS】
题目链接:http://poj.org/problem?id=1426 题意:给你一个n,让你找一个可以整除n的数,这个数只有0和1构成 解析:由于这个数很特殊,所以可以构造出来,用bfs从1开始,每步只能x*10或者x*10+1#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#inclu原创 2017-02-17 10:35:16 · 304 阅读 · 0 评论 -
hdu 1241 Oil Deposits 【DFS】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241 题意:油田问题,很经典的搜索题 解析:每遇到@就对他进行dfs,把和他相连的@全都打上标记,顺便ans++#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>原创 2017-02-17 11:46:30 · 362 阅读 · 0 评论 -
hdu 2612 Find a way【BFS】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 题意:y和m要在kfc见面,问你能否选择一家kfc使得y和m到那里的距离最短 解析:两个人都跑一遍bfs,然后枚举每家kfc,找出最优的即可#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>原创 2017-02-17 14:20:52 · 306 阅读 · 0 评论 -
hdu1086 You can Solve a Geometry Problem too【排斥实验+跨立实验】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1086 题意:给你n条线段,让你输出n条线段的交点个数,相同的交点也要计算 解析:由于不用求具体交点,所以可以用跨立实验和排斥实验判断是否有交点 排斥实验: 两条线段各自有一个矩形,若两个矩形相交,则这两条线有可能相交 跨立实验: 通过叉乘判断两条线段是否相交,也就是一条线段的两个端点对另一条原创 2017-02-27 21:24:21 · 512 阅读 · 0 评论 -
poj2398 Toy Storage【叉乘】
题目链接:http://poj.org/problem?id=2398 题意:题意和poj 2318惊人的相似,只不过输出有点不一样,输出是指有多少个盒子含有那么多个玩具,比如样例一,含有两个玩具的盒子有两个。还有就是给出的挡板是没有排好序的 解析:把挡板排好序以后,就用叉乘判断玩具的位置即可,输出的时候稍微处理一下就好#include <cmath>#include <algorithm>原创 2017-02-27 19:53:28 · 364 阅读 · 0 评论 -
hdu 1115 Lifting the Stone【多边形重心】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115 题意:给你一个多边形,让你求他的重心 解析:多边形重心公式,即把多边形分成多个三角形,然后是三角形的重心的权重和#include <cmath>#include <algorithm>#include <iostream>#include <cstdio>#include <vecto原创 2017-02-27 22:16:53 · 331 阅读 · 0 评论 -
hdu 2036 改革春风吹满地【多边形面积】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2036 题意:求多边形面积 解析:把多边形拆成三角形,然后叉乘求三角形面积,然后求和#include <cmath>#include <algorithm>#include <iostream>#include <cstdio>#include <vector>#include <cstri原创 2017-02-27 22:29:22 · 291 阅读 · 0 评论 -
hdu 2108 Shape of HDU
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2108 题意:逆时针给你多边形上的点,让你判断这是凸多边形还是凹多边形 解析:就跟凸包的判断一样,直接三个点三个点的叉乘,如果小于零,说明凹多边形#include <cmath>#include <algorithm>#include <iostream>#include <cstdio>#i原创 2017-02-27 22:43:57 · 382 阅读 · 0 评论 -
hdu 1392 Surround the Trees【凸包】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1392 题意:给你n棵树,让你用一根绳子把全部树围起来,要绳子尽可能的短,其实也就是求凸包的周长 解析:凸包裸题,然而我莫名其妙调了两个钟的bug,我还是太菜了#include <cmath>#include <algorithm>#include <iostream>#include <cst原创 2017-02-28 14:28:04 · 449 阅读 · 0 评论 -
hdu 5095 Linearization of the kernel functions in SVM【细心题】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5095 题意:现给出你表达式g(p,q,r,u,v,w,x,y,z) = ap+bq+cr+du+ev+fw+gx+hy+iz+j,让你输入t个样例,每个样例输入系数a-i,让你输出表达式 解析:题目不难,就是要细心点 1.从系数不为零的项开始输出 2.全为零输出0原创 2017-02-20 19:30:34 · 300 阅读 · 0 评论 -
poj 3304 Segments
题目链接:http://poj.org/problem?id=3304 题意:给你n条线段,让你找一条线段使得这n条线段在上面的投影至少有一个交点 解析:画个图就知道,如果有一条线段与n条线段全部相交,那么这条线段的垂线就能满足题意要求,把这条直线稍微转一下,总能使得,这条线的端点是n条直线的两个端点,于是只需要枚举每个端点,然后进行判断即可。#include <cmath>#include原创 2017-03-01 22:03:38 · 332 阅读 · 0 评论 -
CodeForces 451B. Sort the Array
题目来源:http://codeforces.com/problemset/problem/451/B 题意:也就是给你一段序列,你只能翻转这段序列中的一段,问你是否只翻转其中的一段,使得这段序列变为升序序列 解析:从前往后找第一个不符合位置的,从后往前找,找到第一个不符合的位置,然后就翻转这一段,判断反转后的结果是否为升序序列#include <bits/stdc++.h>using na原创 2017-02-13 21:03:48 · 613 阅读 · 0 评论 -
CodeForces 456A Laptops
题目链接:http://codeforces.com/problemset/problem/456/A 题意:给一些电脑的价格质量,问你是否存在两台电脑,价格高的,质量低 解析:直接按照价值升序排列,如果价值相等按质量升序排列,然后扫一遍,按照题意来做就好#include <bits/stdc++.h>using namespace std;const int maxn = 1e5+110原创 2017-02-13 21:47:59 · 774 阅读 · 0 评论 -
hdu1411 校庆神秘建筑(求四面体体积)
Problem Description 杭州电子科技大学即将迎来50周年的校庆,作为校庆委员会成员的我被上级要求设计一座神秘的建筑物来迎合校庆,因此我苦思冥想了一个月,终于设计出了一套方案,这座建筑物有点象古老埃及的金字塔,不过这个神秘建筑的根基是三角形的而不是矩形的,从数学的专业角度来讲,它是四面体。当我打算上交我的设计图纸的时候发现,我不知道怎么计算这个神秘建筑的体积(我知道这座建筑的各边的尺原创 2017-02-13 19:42:10 · 551 阅读 · 0 评论 -
hdu 1172猜数字
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1172 题解:由于是四位数,所以可以直接从1000-9999开始枚举,如果只有一个数符合所有案例数则为解,否则Not sure#include <bits/stdc++.h>using namespace std;int tmp[5];struct node{ char b[5];原创 2017-02-13 19:54:31 · 534 阅读 · 0 评论 -
KMP学习笔记
串的模式匹配 串的模式匹配也可以说子串的定位,是一种重要的串运算。所谓模式匹配就是给定两个串s1和s2,在主串s1中找到子串找到一个子串等于s2的过程。对于这样的运算一般有两种方法,一种是暴力的匹配方法,而另一种则是KMP算法。暴力的匹配方法int BruteFroce(char s1[],char s2[]){ int i=0,j=0; int len1 = strlen(原创 2017-02-22 18:44:48 · 261 阅读 · 0 评论 -
hdu 1711 Number Sequence【kmp】
题目链接:https://vjudge.net/contest/70325#problem/A 题意:给你n长度的序列,和m长度的序列,让你输出m和n配对的位置,并输出 解析:kmp裸题#include <algorithm>#include <cstdio>#include <cstring>#include <iostream>using namespace std;const i原创 2017-02-22 19:11:25 · 271 阅读 · 0 评论 -
【转载】ACM计算几何题目推荐
计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2)。因为整数不用考虑浮点误差,而且运算比浮点快。一。点,转载 2017-02-27 13:25:23 · 709 阅读 · 0 评论 -
康托展开与逆康托展开
康托展开 康托展开就是指当前n个元素的排列在这n个元素的全排列里的排名(从小到大) 逆康托展开就是已知某排列在全排列的排名,求这个排列那么对于n个数来说,康托展开为:,在这个公式中an表示第i个元素在未出现的元素中排第几。如:对于507来说,5在507中排第1(从0开始),0在07中排第0,7排第0即a3=1,a2=0,a1=0,这样得到507在所有排列中ans=2(从零开始)代码实现:原创 2017-02-15 18:55:30 · 767 阅读 · 0 评论 -
POJ2251 Dungeon Master 【BFS】
题目链接:http://poj.org/problem?id=2251 题意:给你一个三维迷宫,S是起点,E是终点,#不可走 解析:直接开个三维数组,BFS就好#include <algorithm>#include <cstring>#include <cstdio>#include <queue>using namespace std;const int inf = 0x7ffff原创 2017-02-16 10:39:43 · 372 阅读 · 0 评论 -
ural2073 Log Files【细心题】
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=2073 题意:有t个样例,每个样例输入比赛题目,比赛日期,然后输入n和m,n表示总题数,m表示提交记录数,下面跟m行,然后按格式输出(看样例) 解析:细心点,慢慢写,总能写出来的。。。。(由于有空格,我用的是gets#include <algorithm>#include <cstring>原创 2017-02-24 20:31:18 · 383 阅读 · 0 评论 -
hdu4461 The Power of Xiangqi【水题】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4461 题意:t个样例,没个样例两组输入,每组输入一个n表示有的棋子,接下来输入n个字符(ABCDEFG),每个字符有对应的power,如果当前玩家没有马或者没有炮,玩家的power就-1,问你这两个玩家的power比较情况 解析:把每个人的每个字符的power相加就好,不过要注意-1时是否有本身为0原创 2017-02-24 22:58:07 · 318 阅读 · 0 评论 -
Gym - 101196H Vin Diagrams
题目链接:https://vjudge.net/problem/Gym-101196H 题意:给你两个凸边形的圈A,B,让你数出A包含了几个与B不相交的点,B包含了几个与A不相交的点,A和B相交了多少给点 解析:这种题就是xjb染色,反正写的要死了,我的做法是,在整个图的外面加一圈,然后对A的边染色,染色方式是如果能一直走就一直走,染完后,把圈A外面的全部染成一种颜色,然后剩下里面的也染成另一种原创 2017-03-17 21:25:41 · 814 阅读 · 0 评论 -
Gym - 101246J Buoys【三分】
题目链接:https://vjudge.net/problem/Gym-101246J 题意:给你n个浮标的坐标,浮标是出于0X轴上的,让你移动浮标使得他们相邻的间隔相同,并且对于浮标的改变尽可能的小 解析:首先可以理解的是,一定会有一个浮标不动,那么剩下的就是找以一个浮标不动,去找最优的距离,找距离可以用三分来处理(注意精度) 队里洲神跟我说,不用三分的姿势也可以过,他的思路是找两个点不动,原创 2017-03-03 09:14:53 · 537 阅读 · 0 评论 -
Gym-101257H Card【贪心】
题目链接:https://vjudge.net/problem/Gym-101257H 题意:有n个集合,每次操作你能合并相邻的两个集合,并得分,分数的计算规则为每个集合最大值的和,尽可能的使得最后的得分最大 解析:如果把合并可以理解为,把最小值删掉的话,那么每次最优的操作就是删掉最小值,那么直接排个序,求个和,每次减掉最小值就好了#include <algorithm>#include <c原创 2017-02-25 18:18:53 · 636 阅读 · 0 评论 -
Gym - 101257D !Hasan 【二分 | 推公式】
题目链接:https://vjudge.net/problem/Gym-101257D 题意:总共有n台电脑,Moath找一台电脑需要x分钟,Saif找一台电脑需要y分钟,问你找n台电脑需要多少分钟 解析:在0~2*1e18里面二分答案,还有一种方法就是推公式#include <algorithm>#include <cstdio>#include <cstring>#include <i原创 2017-02-25 18:25:01 · 351 阅读 · 0 评论 -
Gym - 101257E Another Step-by-Step Pupil【水题】
题目链接:https://vjudge.net/problem/Gym-101257E 题意:给你个有六个顶点的立方体,顶点的标号分别是从1~6,找两个三角形,问你这两个三角形有几条边不重合 解析:直接做就好,只有一个顶点一样就输出6,两个顶点一样就输出4(题目说,不会全部重合#include <algorithm>#include <cstdio>#include <cstring>#i原创 2017-02-25 18:29:58 · 442 阅读 · 0 评论 -
Gym - 101257G 24【二分+看题】
题目链接:https://vjudge.net/problem/Gym-101257G 题意:有一道分值为sa的题,n个人一起写这道题,给出每个人的当前分数,和每个人写不出(一定要注意,比赛就是因为漏看了这里,WA好多次)这道题的概率,,让你输出有反超现象出现的期望 解析:每个人的当前分数是按降序排列的,所以排最后的开始往前看,数值在(a[n-1]-1到a[n-2]+sa)这个区间的都是会有反超原创 2017-02-25 18:36:40 · 848 阅读 · 0 评论 -
Gym - 101257A The Fault in Our Cubes【DFS】
题目链接:https://vjudge.net/problem/Gym-101257A 题意:给你一条长度为27的字符串,字符有三种类型,即方块有三种类型,问你能不能拼成3x3x3的正方形 解析:大胆暴力,把第一个E放好,I的方向是确定的,L的方向是除了上一个和直着的那个不能放意外,都找一下 我的代码真的是又丑又长(:#include <algorithm>#include <cstdio>原创 2017-02-25 18:40:38 · 364 阅读 · 0 评论 -
CodeForces 776C Molly's Chemicals
题目链接:http://codeforces.com/contest/776/problem/C 题意:给你一个序列,问你他有多少个子序列的和等k的多少次方 解析:先用前缀和处理子序列的和,如果枚举每个子序列的和即sum[i]-sum[j]=k^x,肯定会超时,那么可以做一个变换即sum[i]-k^x=sum[j],这样的姿势就能过了#include <cstdio>#include <cst原创 2017-03-17 23:59:43 · 428 阅读 · 0 评论 -
hdu4772 Zhuge Liang's Password
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4772 题意:给你一个n,再给你两个nxn的矩阵a,b,问你a,b最多有几个元素相同,b可以旋转角度 解析:水题,直接做#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <iostre原创 2017-03-18 00:08:29 · 459 阅读 · 0 评论 -
hdu4772 Zhuge Liang's Password
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4772 题意:给你一个n,再给你两个nxn的矩阵a,b,问你a,b最多有几个元素相同,b可以旋转角度 解析:水题,直接做#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <iostre原创 2017-03-18 00:08:22 · 329 阅读 · 0 评论 -
CodeForces 776D The Door Problem【并查集】
题目链接:http://codeforces.com/contest/776/problem/D 题意:给你n个门,和m组开关,每扇门都有两个开关控制,每个开关控制x扇门,如果选择了某组开关,则使这组开关里的每个开关控制的所有的门按状态取反,问你是否能使得所有的门状态为1 解析:将每个开关拆分成两个点,选这个开关和不选这个开关(x,x+m),根据每扇门的状态来,如果状态为1,则需要同时选择这两个原创 2017-03-18 10:19:33 · 500 阅读 · 0 评论 -
《挑战》读书笔记(一)
《挑战程序设计》P16 1.6.1先从简单题开始 题意:给你n根棍子,每根棍子长a[i],让你从中选三根棍子,组成周长尽可能长的三角形 解析:书上给的例子时间复杂度是O(n^3)的,小规模的数据可能还好,大了就不行了,下面我自己推了一个O(nlogn)的写法 把棍子长度由大到小进行排序,因为要周长尽可能的长,所以从大的选起,然后再选邻近的两个,如果不能组成就不可能了,因为换根更短的就更不可能原创 2017-02-26 13:45:49 · 455 阅读 · 0 评论