===基本算法===
yhf_2015
无。。。
展开
-
【bzoj 1293】[SCOI2009]生日礼物
注意:细节很多,长度计算的时候直接用末位置减去初位置,不要加1.#include using namespace std;const int maxn = 1000010;struct node{ int num, pos;};bool cmp(node a, node b){ if(a.pos == b.pos) return a.num < b.num;原创 2016-08-26 23:05:54 · 481 阅读 · 0 评论 -
【poj 1517】 u Calculate e
题意:n从0到9时,计算ee的值分别是多少。思路:模拟即可。代码:#include <iostream>#include <cstdio>using namespace std;typedef double db;int main(){ printf("n e\n- -----------\n"); printf("0 1\n"); db now = 1, ans =原创 2016-10-18 13:11:26 · 209 阅读 · 0 评论 -
【洛谷 1022】 计算器的改良
思路只需要统计一下字母的系数和非字母的系数,注意整个式子的最前面出现符号的情况,模拟一下。代码#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;char ch[500], word;int i, op, num1, num2;bool ok;boo原创 2016-10-23 21:09:33 · 494 阅读 · 0 评论 -
【洛谷 1363】 幻象迷宫
思路数组的下表要从0开始存,取膜的时候可以采用:((x%p)+p)%p((x\%p)+p)\%p的形式进行,处理负数。开vis数组记录访问,如果一个下标不同的点被访问了两次,那就有解了,否则就无解。代码#include <cstdio>#include <iostream>using namespace std;const int inf = 1e9;char ch[1510][1510];原创 2016-10-24 14:37:45 · 244 阅读 · 0 评论 -
【洛谷 1135】 奇怪的电梯
思路广搜题,每次遇到满足条件的就加入队列。代码#include <bits/stdc++.h>using namespace std;struct node{ int now, step;};int n, a, b;int a1[210];bool vis[210];queue <node> q1;int main(){ scanf("%d%d%d", &n, &a,原创 2016-10-24 19:22:41 · 478 阅读 · 0 评论 -
【hdu 2039】 三角形
思路简单模拟题,千万要注意读题,题目只说是正数,没说是整数。 使用三角形两边之和大于第三边的性质。代码#include <cstdio>#include <iostream>#include <cstring>using namespace std;int main(){ double a, b, c; int t; scanf("%d", &t); whi原创 2016-10-27 20:22:44 · 271 阅读 · 0 评论 -
【cf 681B】 Economy Game
题意给你一个数nn,问你能否存在a,b,ca,b,c,使得a∗1234567+b∗123456+c∗1234==na*1234567+b*123456+c*1234==n成立。思路直接枚举a,b,c会超时,所以枚举a,b,看(n−(a∗1234567+b∗123456))%1234==0(n-(a*1234567+b*123456))\%1234 == 0是否成立。代码#include <cstdi原创 2016-10-27 21:19:56 · 335 阅读 · 0 评论 -
【hdu 2093】 考试排名
思路读入比较麻烦,用类似读入优化的办法,读近数来原创 2016-10-27 22:38:53 · 604 阅读 · 0 评论 -
【cf 723B】 Text Document Analysis
题意给一个长度为nn的串,分别求出括号外最长的单词的长度和括号里面的单词个数,定义一串连续的英文字母(大小写)为一个单词。思路简单模拟,扫一遍统计一下。代码#include <cstdio>#include <iostream>#include <cstring>using namespace std;char ch[1010];int n, a, b;int len;bool is;原创 2016-10-28 00:44:16 · 262 阅读 · 0 评论 -
【洛谷 1016】 旅行家的预算
思路贪心经典题。要把所有的加油站先排序,之后扫一遍,每一个加油站是否加油主要看从这个加油站开始,能走的路程里面是否存在一个比这个加油站便宜的:如果存在,找到第一个比他便宜的,加油加到这里;如果不存在,就把油加满,走到哪里算哪里。代码#include <iostream>#include <cstdio>#include <algorithm>using namespace std;ty原创 2016-10-23 14:47:29 · 510 阅读 · 0 评论 -
【poj 2785】 4 Values whose Sum is 0
题意:输入一个nn行四列的矩阵,每一列取一个数,总共取四个数,求有多少种可能的四个数相加和为0。思路:枚举a+ba+b的所有组合值,保存到数组中ss中,O(n2)O(n^2)。对s进行从小到大排序,去重操作,并记录个数:S[i],cnt[i]S[i],cnt [i]。枚举c+dc+d的所有情况,每得到一个值xx,到ss中利用二分查找,如果找到s[i]=xs[i]=x,则ans=ans+cnt[i]a原创 2016-10-20 10:45:13 · 314 阅读 · 0 评论 -
【poj 3258】 River Hopscotch
题意:奶牛跳房子:总长度为L(1≤L≤109)L(1\le L\le 10^9),从N(0≤N≤50,000)N(0\le N\le 50,000)块石头中移除M(0≤M≤N)M(0\le M\le N)块,使得间距最小值最大。思路:同NOIP2015NOIP 2015跳石头,二分答案,每次贪心判断。代码:#include <iostream>#include <cstdio>#include原创 2016-10-20 08:45:01 · 227 阅读 · 0 评论 -
【洛谷 1542】 包裹快递
本来是一道很好的二分答案的题,结果不知道是数据还是评测机,交了20多次,都被卡了精度……后来受不了了,直接复制了一份原来别人A过的程序,结果还是wa那一个点,果断放弃,打表。#include using namespace std;int f[200010], t[200010], d[200010], n;bool pd(double mid){ double time原创 2016-09-21 00:49:37 · 642 阅读 · 0 评论 -
【洛谷 1032】 字串变换
很好的bfs的题,实现写的比较麻烦,但感觉不错,思路很清晰,适合考试。#include using namespace std;int cnt=1;bool flag=0;string a, b;string d[10][2];struct node{ string a; int step;};queue q1;map map1;bool bfs(){ q1.原创 2016-09-21 09:12:21 · 636 阅读 · 0 评论 -
【vijos 1107】 环游大同80天
就相当于求树的直径。#include using namespace std;int b1[5] = {0,0,0,1,-1};int b2[5] = {0,1,-1,0,0};bool vis[1010][1010];char a1[1010][1010];int ans = 0, maxx = 0, maxy = 0, max1 = 0;int dfs(int x,原创 2016-09-23 07:31:08 · 593 阅读 · 0 评论 -
【poj 1064】Cable master
题意:有n条电缆,他们的长度分别为l[i]。如果从n条电缆中切割出K条长度相同的电缆的话,这k条电缆每条最长能多长?答案小数点后保留两位有效数字。解: 放大100倍,化为整数,避免实数运算误差,结果再除以100 分析题目的单调性,设割完以后的电缆每条长度为x,当x接近无穷小的时候,能切出来的条数y接近正无穷,当x不断变大时,y自然会变少,直观感受一下,随着x的变大,y是单调下降的。 所以就可以原创 2016-10-13 22:50:42 · 547 阅读 · 0 评论 -
【poj 3050】 Hopscotch
题意:给定一个5×55\times 5的方格,每个方格内有一个0−90-9之间的数,现在让你任意起点,向上下左右四个方向随便跳6次,求每次跳过的格子里的数字连起来形成的数一共有几个。每个格子可以跳无限次。数字可以不是6位数,意味着前面有0也是可以的。思路:深度优先搜索,枚举从每一个点开始跳6步的情况,每次跳到6步,就用map判断一下是否重复,不重复就把计数器++。代码:#include <iostr原创 2016-10-18 13:38:50 · 348 阅读 · 0 评论 -
【poj 3579】 Median
题意:输入一个正整数nn,1个正整数序列AA,有nn个元素,现在定义一个新的序列BB,里面的元素分别是序列AA中任意两个数之间的差的绝对值,差的个数一共有C2nC^2_n个,现在求序列BB的中位数。如果BB序列中元素的个数是偶数个,默认中位数是中间两个数中小的那一个。思路:计算可得中位数是BB序列里的第kk个元素,因为考虑到nn比较大,不能构造出BB序列,所以可以用二分来枚举中位数的大小。 为了方原创 2016-10-20 01:05:50 · 309 阅读 · 0 评论 -
【poj 1505】 Copying Books
题意:现在要把m本有顺序的书分给k个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一、第三和第四本书给同一个人抄写。现在请你设计一种方案,使得复制时间最短。复制时间为抄写页数最多的人用去的时间。如果有多组解的话先要保证第一个人抄的尽量少,若仍有多组解,要先保证第二个人抄的尽量少,以此类推。要注意一下,保证前面的尽量小,前面原创 2016-10-20 01:15:30 · 467 阅读 · 0 评论 -
【poj 2456】 Aggressive cows
题意:FJ建造了一个有N(2≤N≤100000)N(2\le N\le 100000)个牛棚,这些牛棚分布在一条直线上,坐标是x1,x2…xN(0≤xi≤109)x_1,x_2…x_N(0\le xi\le 10^9)。他的C(2≤C≤N)C(2\le C\le N)只奶牛不满意隔间的位置分布,它们会与牛棚里其他牛的存在而愤怒。为了防止牛之间互相打斗,约翰想把这些牛安置在制定的隔间,所有牛之间相邻两原创 2016-10-20 08:37:53 · 395 阅读 · 0 评论 -
【uva 11300】 Spreading the Wealth
题意环形排列的n(n≤106)n(n\le 10^6)个人,每人有一定量的金币。每个人可以给左右相邻的两个人金币,最终使得每个人都有相同量的金币。求被转手的最小金币数。思路贪心的经典题。 一个人最后手中的金币数一定是所有人金币数的和除以人数(考虑均分)。原创 2016-12-11 21:49:07 · 314 阅读 · 0 评论