- 博客(64)
- 收藏
- 关注
原创 【基础算法】快速求和(从爆、暴搜到记忆化再到)
【基础算法】快速求和时间限制: 10 Sec 内存限制: 256 MB题目描述给定一个数字字符串,用最少次数的加法让字符串等于一个给定的目标数字。每次加法就是在字符串的某个位置插入一个加号。在需要的所有加号都插入后,就象做普通加法那样来求值。 例如,考虑字符串"12",做0次加法,我们得到数字12。如果插入1个加号,我们得到3。因此,这个例子中,最少用1次加法就得到数字3。 再举一例,考虑...
2018-11-23 14:00:59 836
原创 NOIP2018龙虎斗
龙虎斗轩轩和凯凯正在玩一款叫《龙虎斗》的游戏,游戏的棋盘是一条线段,线段上有 n个兵营(自左至右编号 1 ~ n),相邻编号的兵营之间相隔 1 厘米,即棋盘为长度为n − 1 厘米的线段。i号兵营里有ci位工兵。轩轩在左侧,代表“龙”;凯凯在右侧,代表“虎”。 他们以 m 号兵营作为分界,靠左的工兵属于龙势力,靠右的工兵属于虎势力,而第 m号兵营中的工兵很纠结,他们不属于任何一方。一个兵营的...
2018-11-13 17:42:24 684 1
原创 STL简单模板<1>
问题描述:输入一个点的坐标,输出它距离原点的距离输入:一行,两个浮点数,表示这个点的坐标输出:这个点离原点的距离,保留三位小数样例输入:3 4样例输出5.000**思路点拨:**拿到这到题后,大家都会这样做#include<cstdio>#include<cmath>#include<iostream>using namespac...
2018-10-01 19:39:54 296
原创 最短路径基础算法——弗洛伊德
问题 A(1171): 【基础算法】最短路径问题时间限制: 1 Sec 内存限制: 64 MB题目描述平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的任务是找出从一点到另一点之间的最短路径。输入第1行:1个整数n第2…n+1行:每行2...
2018-09-27 13:33:56 378
原创 平方和阶乘(一个繁琐的高精 C++)
平方和阶乘 题目限制 时间限制 1000ms 内存限制 1000KiB 题目描述 Description 小明是一个数学渣渣,但是老师总是让他做一些很奇怪的题目。 这次小明又遇到麻烦了,老师告诉他一个数a,让他求出这个数平方的阶乘a1和这个数阶乘的平方a2,还要a1a2的和,和a1a2的非负数差; 在a很小的时候,小明勉强能死算出答案;但是a很大的时候,小明就崩溃了。 请你为...
2018-09-02 16:17:57 2007
原创 硬币面值组合(简单枚举 C++)
硬币面值组合 总时间限制: 1000ms 内存限制: 65536kB 描述 使用1角、2角、5角硬币组成 n 角钱。 设1角、2角、5角的硬币各用了a、b、c个,列出所有可能的a, b, c组合。 输出顺序为:先按c的值从小到大,若c相同则按b的值从小到大。 输入 一个整数n(1 <= n <= 100),代表需要组成的钱的角数。 输出 输出有若干行,每行的形式为: ...
2018-09-01 21:31:35 6250 2
原创 谁是你的潜在朋友(枚举 C++)
谁是你的潜在朋友 总时间限制: 1000ms 内存限制: 65536kB 描述 “臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。 首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,...
2018-09-01 21:24:38 1873
原创 配对(简单贪心 C++)
配对 时间限制 1000ms 内存限制 65536KB 题目描述 给出2个序列A={a[1],a[2],…,a[n]},B={b[1],b[2],…,b[n]},从A、B中各选出n个元素进行一一配对(可以不按照原来在序列中的顺序),并使得所有配对元素差的绝对值之和最大。 输入格式 输入的第1行为1个整数n 第2行包含n个整数,题目中的A序列。 第3行包含n个整数,题目...
2018-09-01 15:00:28 1974
原创 An Easy Problem(模拟 C++)
An Easy Problem Total time limit: 1000 ms memory limit: 65536 kb describe As we known, data stored in the computers is in binary form. The problem we discuss now is about the positive integers and ...
2018-08-31 22:25:24 2076
原创 移动路线(dp入门)
移动路线 总时间限制: 1000ms 内存限制: 65536kB 描述 ×桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。 小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。小明把这只蚂蚁放在左下角的方格中,蚂蚁从 左下角的方格中...
2018-08-31 21:31:50 2000
原创 最大公约数与最小公倍数(数学)
最大公约数与最小公倍数 总时间限制: 1000ms 内存限制: 65536kB 描述 两个正整数的最大公约数是G,最小公倍数是L,它们的和最小是多少? 输入 两个不大于10000的正整数G和L,中间用单个空格隔开。数据保证L是G的倍数。 输出 一个正整数,即最小的和。 样例输入14 280样例输出126来源 《奥数典型题举一反三(小学五年级)》 (ISBN...
2018-08-31 15:06:20 994
原创 竞赛总分(简单dp之完全背包问题)
竞赛总分 总时间限制: 1000ms 内存限制: 65536kB 描述 学生在我们USACO的竞赛中的得分越多我们越高兴。我们试着设计我们的竞赛以便人们能尽可能多得分。 现在要进行一次竞赛,总时间T固定,有若干类型可选择的题目,每种类型题目可选入的数量不限,每种类型题目有一个si(解答此题所得的分数)和ti(解答此题所需的时间),现要选择若干题目,使解这些题的总时间在T以内的前提下...
2018-08-30 22:14:07 976
原创 摘花生(dp入门)
摘花生 总时间限制: 1000ms 内存限制: 65536kB 描述 Hello Kitty 想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty 最多能够摘到...
2018-08-30 21:44:53 1369
原创 最大奇约数(递归 C++)
最大奇约数 总时间限制: 1000ms 内存限制: 65536kB 描述 定义函数f(x)表示x的最大奇约数,这里x表示正整数。例如,f(20) = 5,因为20的约数从小到大分别有:1, 2, 4, 5, 10, 20,其中最大的奇约数为5。 给出正整数N,求f(1)+f(2)+…+f(N) 输入 第1行:1个正整数N 1<=N<=10^9 输出 第1行:1个正整数...
2018-08-30 14:58:36 799
原创 货币(编程基础 C++)
货币 总时间限制: 1000ms 内存限制: 65536kB 描述 某国在进行货币改革。国王提出最大的货币面值只能为N。国王希望这次货币改革后的每一种面值都是比它更小的面值的倍数。在给定N的情况下,他们希望面值的数量能够最多。请你算出这个国家会有哪些面值的货币。按照从大到小的顺序输出,如果有多个答案,要使得面值之和越大越好。 输入 一个整数N,N&lt;=1000000 30%的数据,...
2018-08-30 14:37:33 1022
原创 分割平面(递推之分割品面)
分割平面 总时间限制: 1000ms 内存限制: 65536kB 描述 设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。输入 一个数n(1≤n≤46341) 输出 一个数,这些曲线把平面分割成的个数总和 样例输入3样例输出8提示 寻找递推式思路点拔:五大经典递推关系...
2018-08-30 14:00:01 678
原创 合理放球(递推之第二类斯特林数 C++)
合理放球 总时间限制: 1000ms 内存限制: 65536kB 描述 n个各不相同球放入m个相同的盒子里,球全部放完后,要求最后没有空盒!求不同的放法总数。 输入 一行两个数n和m n表示球数,m表示盒子数 (0<n≤20)(0≤m≤20) 输出 不同且合理的放法总数 样例输入3 2样例输出3提示 递推 第二类stirling数 思路点拔:经典的第二类斯...
2018-08-29 22:26:43 1715
原创 凸n边形的不同划分方式(递推之卡塔兰数 C++)
凸n边形的不同划分方式 总时间限制: 1000ms 内存限制: 65536kB 描述 卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名。 最初,给卡塔兰数建立的数学模型是:一个凸n边形,通过不相交于n边形内部的对角线,把n边形拆分成若干三角形,不同的拆分数目用h...
2018-08-29 22:01:53 2495
原创 马走日(深搜 C++)
马走日 总时间限制: 1000ms 内存限制: 1024kB 描述 马在中国象棋以日字形规则移动。 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。 输入 第一行为整数T(T < 10),表示测试数据组数。 每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,...
2018-08-29 21:37:22 9133 2
原创 【模板】读入优化
在这里给大家送上一个骗分神器:读入优化,思想就是运用getchar比scanf快的优势写一个模 板,进行一位一位的读入,虽然打着有点麻烦,但是却很实用,如果有些题找不到高效的算法 ,就用读入优化进行骗分是最好的方法了^_^,下面是读入优化的代码void read(int &x) //读入优化(如果数据非常大,读入优化比scanf快大约200多毫秒){ int f=1; ...
2018-08-29 15:23:45 275
原创 密码锁(并查集+快速幂 C++)
密码锁 总时间限制: 5000ms 内存限制: 524288kB 描述 世界上有一种圆筒形密码锁,这种锁有n位,每一位是a-z中的任意一个字母,这种锁一共有m个可操作的区间,对于每个区间都可以整体向上转动(可以转动多次)。比如abc向上转一下就是bcd,zab向上转一下就是abc(z向上转就是a)。你可以同时转动每个区间内的密码锁,能够通过转动使之一样的密码锁为同一种密码,问你这个密码锁总共...
2018-08-28 17:47:01 1272
原创 怪盗基德的滑翔翼2(动规dp C++)
怪盗基德的滑翔翼 总时间限制: 1000ms 内存限制: 65536kB 描述 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。 有一天,怪盗基德像往常一样偷走了一颗珍贵的钻石,不料却被柯南小朋友识破了伪装,而他的滑翔翼的动力装置也被柯南踢出的足球...
2018-08-28 17:23:28 442
原创 怪盗基德的滑翔翼1(动态规划dp)
怪盗基德的滑翔翼 总时间限制: 1000ms 内存限制: 65536kB 描述 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。 有一天,怪盗基德像往常一样偷走了一颗珍贵的钻石,不料却被柯南小朋友识破了伪装,而他的滑翔翼的动力装置也被柯南踢出的足球破坏了。不得已,...
2018-08-28 17:09:39 3137
原创 立体图(模拟 NOIP2008)
立体图 总时间限制: 1000ms 内存限制: 51200kB 描述 小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣的内容。最近,他准备给小朋友们讲解立体图,请你帮他画出立体图。 小渊有一块面积为m*n的矩形区域,上面有m*n个边长为1的格子,每个格子上堆了一些同样大小的积木(积木的长宽高都是1),小渊想请你打印出这些格子的立体图。我们定义每个积木为如下格式,并且不会做任何翻...
2018-08-27 21:23:40 661
原创 全排列(深搜 递归 C++)
全排列 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有’a’ < ‘b’ < … < ‘y’ < ‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。 输入 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。 输出 输...
2018-08-27 13:51:22 2176
原创 传球游戏(动态规划dp NOIP2008)
传球游戏 总时间限制: 1000ms 内存限制: 65536kB 描述 上体育课的时候,小明的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大...
2018-08-27 13:17:56 607
原创 ISBN号码(字符串)
ISBN号码 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;...
2018-08-27 13:01:52 3138
原创 畅通工程(并查集入门 C++)
畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道...
2018-08-26 22:28:07 841
原创 NOIP2010关押罪犯(并查集之构造虚点 C++)
NOIP2010关押罪犯 总时间限制: 1000ms 内存限制: 65536kB 描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c的罪犯被关押在同一监狱,他们俩之间会...
2018-08-26 22:12:53 538
原创 电池的寿命(贪心)
电池的寿命、 总时间限制: 1000ms 内存限制: 65536kB 描述 小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电。为了保证能够长时间玩游戏,他买了很多5号电池,这些电池的生产商不同,质量也有差异,因而使用寿命也有所不同,有的能使用5个小时,有的可能就只能使用3个小时。显然如果他只有两个电池一个能用5小时一个能用3小时,那么他只能玩3个小时的游戏,有一个电池剩下的电量无法使用...
2018-08-26 21:48:38 5580 2
原创 最长不下降序列(动态规划)
最长不下降序列 查看 提交 统计 提问 总时间限制: 1500ms 内存限制: 65536kB 描述 设有由n个整数组成的数列,任意删掉若干后剩下的数列成为子序列。 如果子序列是严格不递减的,则成为不下降子序列。 求该数列的最长不下降子序列的长度。 并输出一组一组符合要求的最长子序列。 输入 两行 第一行n(1≤n≤10000) 第二行n个数,用空格隔开,范围均在(-1000...
2018-08-25 22:15:44 1279
原创 骄傲的商人(动态规划DP C++)
骄傲的商人 总时间限制: 1000ms 内存限制: 65536kB 描述 最近, iSea去了一个古老的国家。在很长一段时间里,这个国家是世界上最富有、最强大的国家。因此,即使他们的国家不再那么富有,这个国家的人民仍然非常自豪。 那里的商人是最典型的例子。他们每个商人只卖一件商品,价格是Pi,但是如果你的钱少于Qi,他们会拒绝和你交易。iSea会评估每一件商品的价值Vi。 如果...
2018-08-25 21:51:28 1423
原创 乌龟棋[NOIP2010](动态规划 多维DP C++)
乌龟棋[NOIP2010] 总时间限制: 1000ms 内存限制: 65536kB 描述 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数)。棋盘第1 格是唯一的起点,第N 格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。 乌龟棋中M 张爬行卡片,分成4 种不同的类型(M 张卡片中不一定包含所有4 种类型的卡片,见样例...
2018-08-25 21:33:25 407
原创 子集的和(动态规划DP)
子集的和 总时间限制: 1000ms 内存限制: 65536kB 描述 对于从1到N (1 <= N <= 71) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每个子集合的所有数字和是相等的: {3} 和 {1,2} 这是唯一一种分法(交换集合位置被认为是同一种...
2018-08-25 21:19:25 2009
原创 导弹拦截(动态规划 C++)
导弹拦截DP 总时间限制: 1500ms 内存限制: 65536kB 描述 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算最少需要多少套系统才能拦截所有导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许...
2018-08-25 20:28:08 12129 4
原创 取纸牌游戏(贪心)
取纸牌游戏 总时间限制: 1000ms 内存限制: 65536kB 描述 有N张纸牌,每张牌上写着一个整数Ai。Alice和Bob玩取纸牌游戏。玩法是这样的:每人轮流从纸牌堆里取一张牌,Alice先取。当所有牌取完后,游戏结束。每人的得分是他取到的牌上整数之和。如果他们每次都按最优策略取牌使自己的得分最大化。求游戏结束后Alice的得分减去Bob得分的结果。 输入 第1行:1个整数N,表...
2018-08-25 20:04:03 2441
原创 宗教信仰(并查集)
宗教信仰 总时间限制: 5000ms 内存限制: 65536kB 描述 世界上有许多宗教,你感兴趣的是你学校里的同学信仰多少种宗教。 你的学校有n名学生(0 < n <= 50000),你不太可能询问每个人的宗教信仰,因为他们不太愿意透露。但是当你同时找到2名学生,他们却愿意告诉你他们是否信仰同一宗教,你可以通过很多这样的询问估算学校里的宗教数目的上限。你可以认为每名学生只会信...
2018-08-25 16:22:54 1009
原创 【NOIP2009】多项式的输出(模拟算法)
【NOIP2009】多项式的输出 题目描述 一元 nn 次多项式可用如下的表达式表示: 其中,a_i,x_iai, i称 ii次项, a_ia i称为 ii 次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: 多项式中自变量为 xx ,从左到右按照次数递减顺序给出多项式。 多项式中只包含系数不为 00 的项。 如果多项式 nn 次项系数为正,则多...
2018-08-25 15:52:54 819 1
原创 【模板】并查集(抽象派 森林 C++)
【模板】并查集 时空限制 1000ms / 128MB 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作。 输入输出格式 输入格式: 第一行包含两个整数N、M,表示共有N个元素和M个操作。 接下来M行,每行包含三个整数Zi、Xi、Yi 当Zi=1时,将Xi与Yi所在的集合合并 当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N 输出格式: 如上...
2018-08-24 22:35:46 222
原创 循环比赛日程表(分治 C++)
循环比赛日程表 总时间限制: 1000ms 内存限制: 65535kB 描述 设有n个选手进行循环比赛,其中n=2m,要求每名选手要与其他n-1名选手都赛一次,每名选手每天比赛一次,循环赛共进行n-1天,要求每天没有选手轮空。 输入 m(m<=10) 输出 表格形式的比赛安排表(数字之间以一个空格分开) 样例输入 3 样例输出 1 2 3 4 5 6 7 ...
2018-08-24 20:35:59 4218 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人