自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mercury

记录以前的想法

  • 博客(28)
  • 收藏
  • 关注

原创 装箱问题两解

题目简介有一个箱子容量为 V (正整数,0≤V≤20000),同时有 n 个物品(0 < n ≤ 30),每个物品有一个体积(正整数)。要求从 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。说明考虑到n,V都不大,可以用搜索和动规两种方法来做。 可以说是模板题了。搜索:#include <stdio.h>#include <m...

2017-12-31 20:29:16 338

原创 EOJ 3188 坏掉的彩灯

题目简介Bob 有一串节日彩灯,彩灯共有 4 种颜色(R,B,Y,G 表示),可惜有一些灯泡已经坏掉了( ! 表示)。Bob 并不记得彩灯的序列,只记得这串彩灯的任意 4 个连续的灯泡颜色都不相同。Bob 需要统计每种颜色坏掉的彩灯有多少个。说明0123下标对应RBYG四种颜色。其中tot和ans数组存储每种颜色的灯应有的总数,cnt为实际的总数,两者相减即可。#include <stdio.h>

2017-12-31 20:20:35 527

原创 EOJ 3018 查找单词【指针练习】

题目简介有一个单词 W,输出它在字符串 S 中从左到右第一次出现的位置 IDX(设 S 中的第 1 个字符的位置为 1)。W 只由英文字母组成,S 除英文字母和汉字之外在任何位置(包括头和尾)另有一个或多个连续的空格。查找单词时,不区分大小写,但要求完全匹配,即单词 W 必须与 S 中的某一独立单词在不区分大小写的情况下完全匹配。W 仅是 S 中某一单词的一部分就不算匹配。说明算是比较恶心的字符串题

2017-12-24 22:44:56 388

原创 EOJ 1849 Cards Game【约瑟夫问题】

题目简介给你 13 张扑克牌,A,2,3,4,5,6,7,8,9,10(T),J,Q,K,要求你将这些牌适当的排列后,能够满足,当你抽出牌顶上的一张后,将按规定切 m 次牌,每次切牌都将牌顶上的一张牌切到牌底。然后再抽出一张牌。使得这些抽出来的牌排成以上的顺序:A,2,3,4,5,6,7,8,9,10(T),J,Q,K。说明写的时候还不知道约瑟夫问题,WA了好多发。 直接模拟即可,也可以使用更方便

2017-12-24 22:28:40 182

原创 EOJ 2981 零食

题目简介康夫的好朋友机器猫是个很喜欢零食的人,经常会买很多很多的零食放着,每次康夫饿了都会问他要,可是机器猫只会把价格最低的零食分给康夫吃。由于机器猫的零食实在太多,每次找价格最低的零食非常麻烦。希望你编写一个程序帮助他。Input 第 1 行:整数 T (1≤T≤10) 为问题数第 2 行开始的数据:每个问题的第一行是一个整数 n (1≤n≤100 000),表示后面有多少个操作,接下来每行一个

2017-12-24 22:18:39 274

原创 最大连续子序列的和【线性在线算法】

代码#include &lt;stdio.h&gt;int main(){ int cas, i, n; scanf("%d", &amp;cas); while (cas--){ scanf("%d", &amp;n); int a[100] = {0}; for (i = 0; i &lt; n; ++i...

2017-12-23 17:23:10 232

原创 EOJ 3354 领外卖

题目简介林吉吉(LJJ)和金大哥(JDG)为了谁去领外卖吵得不可开交,为了确定谁去领外卖,李蓓蓓学姐设计了一个简单的游戏:给定一堆 n 个石子,每个人轮流从石子堆取走若干个石子,要求每次取走的石子数为正完全平方数(即此数为某个正整数的平方),拿走最后一颗石子的人获胜,林吉吉先手。请问若双方都以最佳方式进行选择,谁将去领外卖?说明简单的博弈论题。写了前几项,以为找到了规律,不证明直接推广,在这里就容易

2017-12-23 17:14:49 655

原创 简单dp&递推合集

以下题目全部来自EOJ。1075 庆祝迎评成功一个蛋糕切n刀,求最多可以切成几块。说明对三维问题,降维处理不失为一种好方法。我们先考虑二维情况:n条直线分割一个平面,最多可以分割成几块?假设n-1条直线已经确定(并且已经是最优解,下同),那么第n条直线需要与前n-1条直线交于n-1个不同的点,这使第n条直线被分为n份,平面则将被多分出n个区域。我们设

2017-12-23 16:51:29 646

原创 EOJ 2607/HDU 2698/WOJ 1414/The 4th Baidu Cup URL

题目简介WHU ACM Team is working on a brand new web browser named “Whu-Super-Browser”. You’re in response for a powerful feature: recording the previous addresses. Moreover, when a string is inputted, the b

2017-12-23 15:10:58 316

原创 判断两条线段是否相交

说明包括了一个或多个点重合的情况。 输入点的坐标顺序为Ax,Ay,Bx,By,Cx,Cy,Dx,Dy,判断线段AB与线段CD是否相交。 由于问题比较简单,没有用到向量、叉积什么的,而是用了奇怪的作图法+不证明直接推广法(?)。 可以画个图验证一下。对于稍难的计算几何题,这些奇技淫巧就没有用了。#include <stdio.h>int main(){ int x1, y1, x2,

2017-12-17 22:55:20 213

原创 计算两个一元多项式的乘积

代码细节比较多。降幂输出非零系数。#include <stdio.h>#include <string.h>#include <ctype.h>#define N 100void readpoly(char *s, int* poly){ while (*s){ int sign = 1, a = 0, i = 0; if (*s == '+' ) +

2017-12-17 22:20:15 1663

原创 EOJ 3025 连续正整数之和

题目简介有些正整数可以表示为 n(n>1) 个连续正整数的和,如:15=1+2+3+4+515=4+5+615=7+8给定一个正整数 N,判断其是否可以表示为一组连续正整数的和,输出符合条件的解的组数。说明这题方法很多,也可以滑动窗口法枚举左端点,移动右端点来做。这里采用设未知量,从公式倒推的方法,具体见注释。最后注意特判。#include <stdio.h>#include <math.h>in

2017-12-17 22:03:13 493

原创 EOJ 3366 这题没验过啊?

题目简介ultmaster 和 infiniteee 码力都很强,所以他们决定通过游戏来决定谁来验题。 给他们俩一个数 n,现在他俩轮流报数,infiniteee 先报,但是每次报的数只能从 2 到 9 中选取,每次报完数都会把结果累加,如果某个人报完数恰好使累加和大于或等于 n,则他获胜。假设两个人都足够聪明,都会按对自己最有利的方式报数,现在的问题是,如果给定 n,这两个人谁有必胜策略,是 u

2017-12-17 21:52:13 460

原创 EOJ 1918/POJ 3444/Rocky Mountain 2007 Wavelet Compression

题目简介The discrete wavelet transform is a popular tool for signal compression. In this problem, your job is to write a program to decompress a one-dimensional signal (a list of integers) that has be

2017-12-16 18:35:55 309

原创 EOJ 2527 Fj & haozi【dfs】

题目简介haozi 很淘气,最近 FJ 带了很多好吃的,haozi 乘 FJ 不在的时候就吃了很多好吃的,FJ 回来发现了,决定一定要抓住 haozi。 但是 haozi 很聪明,假设原来他在 16 号楼,那么下一分钟必定是在 15 号楼或者 17 号楼 . 如果他一开始在 1 号楼,那么下一分钟只能在 2 号楼 , 如果他一开始在 n 号楼,那么下一分钟一定在 n-1 号楼。 现在给定一共

2017-12-16 18:24:15 350

原创 EOJ 3303 1的个数最多的整数

题目简介给定整数 a 和 b,输出区间 [a,b] 中对应二进制表示含 1 的个数最多的整数。 如果存在多个解,则输出符合条件的最小的整数。 0≤a≤b≤2^63−1说明数据量很大,注意开unsigned long long。 思路就是在a的基础上不断把低位0变为1(利用巧妙的位运算实现),但不能超出b。这样同时保证了1的个数最多且数值最小。#include <stdio.h>typedef

2017-12-16 18:11:13 539

原创 EOJ 2536 求和

题目简介A[n] = F[n+2] / F[n+1], F[n]表示斐波那契数列第n项 求出这个数列的前 n 项之和。n <= 13说明数据较小,斐波那契数列直接打表了。不足的是居然没有typedef long long ll;(可能写的时候还不知道typedef是什么)。分数运算处理起来略微麻烦一点。Linux下“%I64d”换成"%lld"。#include <stdio.h>long

2017-12-16 17:49:17 307

原创 EOJ 2006 孤独数

题目简介如果一个正整数 a 能够被表示为另外一个正整数 b 与 b 各位数字的和,那么我们认为这个数不是孤独的。现在的问题就是想让你求出所有不大于 1 000 000 的孤独数。比如 46 不是孤独数,因为 46=41+4+1。说明当时写这题时第一次用malloc(并无必要),姑且记录一下。 数组移位也用了非常蠢的方式,在1e6出现次数多的时候还没有定义常量。好在用到了标记的思想。#include

2017-12-16 17:42:45 1013

原创 【C++练习】贪吃蛇

#include <iostream>#include <cstdio>#include <cstdlib>#include <ctime>#include <windows.h>#include <conio.h>#define N 28#define UP 72#define DOWN 80#define LEFT 75#define RIGHT 77using names

2017-12-16 17:33:58 212

原创 【递归练习】算24点

代码#include <cstdio>#include <cmath>#define EPS 1e-8using namespace std;double a[4];bool judge(double a[], int n){ if (n == 1){ if (fabs(a[0]-24) <= EPS) return 1; else return 0;

2017-12-16 16:17:28 2050

原创 EOJ 3298 排队买夜宵

题目简介远岛子五月二十号去食堂买夜宵,她发现了令人悲戚的一幕,食堂门口排满了人,而更让人悲戚的是每当有一个人排到队伍的末尾,如果他/她前面是异性,他们就马上牵手走人了。给定一个序列,从前往后排入队伍的学生的性别,女生用 0 表示,男生用 1 表示,远岛子想要知道最终队伍的长度(假设不碰到异性不会有人离开)。说明由于从队尾开始,相邻的01被去除,容易想到用栈模拟。判断是否要去除可以用异或操作实现。#i

2017-12-12 19:09:41 414 1

原创 EOJ 3367/FOJ 2253咸鱼翻身【最大区间和】

题目简介给定01序列,选择一个区间,对区间中每个数取反(0变1,1变0),求1最多能有多少个。说明最大区间和问题。对于1,翻转后收益(1的个数)为-1;对于0,翻转后收益为+1。方便起见,读入时直接把数字转换为收益。最后求最大区间和,加上原来1的个数就是答案。由于和最大的区间中不会有-1出现,区间所覆盖的位置也不会包括原来1所在的位置,因此不会重复。#include <stdio.h>int a[1

2017-12-12 18:42:40 284

原创 EOJ 2019 加密1 && EOJ 2020 加密2

题目简介加密1: 对一个整数 (32 位无符号整数) 进行规则如下的加密: 低 16 位和高 16 位互换 此时的低 16 位按位取反 此时的高 16 位与低 16 位进行异或运算,结果存储到高 16 位 写出一个程序对指定的整数进行加密。加密2: 对一个整数 (32 位无符号整数) 进行规则如下的加密: 低 16 位和高 16 位互换 此

2017-12-07 14:30:44 382

原创 EOJ 1424/FOJ 1171/POJ 2572/ZOJ 1969/Ulm Local 2001 Hard to Believe, but True!

题目简介给定一个等式,问等式从右往左读是否正确。说明题目不难,不过用到了一些有趣的字符串处理,所以记录下来。#include <stdio.h>#include <string.h>#include <stdlib.h>void rev_str(char s[]){ int c,i,j, len = strlen(s); for (i = 0, j = len - 1; i <

2017-12-07 14:08:57 252

原创 EOJ 1886 有一个数很特别

题目简介给定 N 个自然数,其中有一个数出现奇数次,其他的都出现偶数次,试找出这个出现奇数次的数。说明用到异或运算两个性质:同一个数异或两次即为其自身交换律#include <cstdio>using namespace std;int main() { int n, tmp, a; while (~scanf("%d", &n)) { a = 0;

2017-12-04 21:45:19 219

原创 欧拉筛法求素数

C代码#include &lt;stdio.h&gt;#include &lt;stdbool.h&gt;bool flag[10001] = {0};int p[10001] = {0};int main(){ int i, n, cnt = 0, j; scanf("%d", &amp;n); for (i = 2; i &lt;= n; ++i...

2017-12-04 21:37:04 335

原创 EOJ 2983 蛇行图案

题目简介输出蛇形图案,如: 1 2 3 8 9 4 7 6 5说明直接模拟,用控制方向的常量数组简化程序。#include <stdio.h>#include <stdbool.h>#include <memory.h>int n, x, y, num[11][11];bool inside(int x, int y){ if (1 <= x && x <= n && 1 <=

2017-12-04 21:25:28 343

原创 EOJ 2690/HDU 3139/UVa 11689/NCPC 2009 Soda Surpler

题目简介有e+f个空瓶,每c个空瓶换一瓶汽水,问最多换几瓶。说明现有空瓶除以c,得到商为本次兑换的瓶数,加上余数是现在的空瓶数。重复到无法兑换为止。#include <stdio.h>#include <stdlib.h>int main(){ int e,f,c,b,a; while (scanf("%d %d %d", &e, &f, &c) != EOF){

2017-12-04 21:16:34 285

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除