YYHSOI4月月赛考点与分析

提高赛#A 计算器的改良 NOIP2000提高组考点:模拟,字符串的读取与处理 难度:普及组 期望分数:100#B 神奇的幻方 NOIP2015提高组考点:模拟,基本程序操作 难度:入门 期望分数:100#C 求和 NOIP2015普及组考点:前缀和优化、排序、数学优化思想 难度:提高组...

2017-03-18 21:51:34

阅读数 163

评论数 0

笔记

21日尼克的任务N T1 p1 n1 … 状态:f[i] i~n段内最大空闲 状态转移方程: i时刻无任务 f[i]=f[i+1]+1 i时刻有任务 f[i]=max{f[ej+1]} ej是某任务结束的时间 决策:选择结束时间状态(最大空闲)最多(贡献最大)的任务化工厂装箱员状态:f[...

2017-01-22 17:03:59

阅读数 163

评论数 0

CCF基础P54练习题解

练习1#include <string> #include <iostream> #include <cctype> using namespace std;bool judge(string s) { if(!isalpha(s[0])) { ...

2017-01-03 17:57:39

阅读数 212

评论数 0

CCF基础P226练习题解

练习1#include <cstdio>int gcd(int a, int b) { if(b == 0) return a; return gcd(b, a % b); }int lcm(int n, int m) { return n * m / gcd(...

2016-12-27 17:50:50

阅读数 319

评论数 0

CCF基础P29练习题解

练习1#include <cstdio>int shugen(int n) { int sum = 0; while(n != 0) { sum += n % 10; n /= 10; } if(sum / 10 != 0...

2016-12-25 11:54:12

阅读数 305

评论数 0

二进制最大公约数算法

一、介绍二进制最大公约数算法避免了欧几里得算法(辗转相除法)的大量取模操作,有效减少了时间消耗,且更为方便。二、原理本算法基于以下事实: 对于两个数的最大公约数gcd(m, n),有 m<n时,gcd(m, n)=gcd(n, m) m偶n偶时,gcd(m, n)=2*gcd(m/2, n...

2016-12-25 08:50:04

阅读数 665

评论数 0

CCF入门P243练习4:奇数阶幻方

题目(来源:NOIP2015提高组复赛D1T1,Vijos) 幻方是一种很神奇的 N ∗ N 矩阵:它由数字 1,2,3, … … , N ∗ N 构成,且每行、每列及两条对角线上的数字之和都相同。 当 N 为奇数时,我们可以通过以下方法构建一个幻方: 首先将 1 写在第一行的中间。 之后,...

2016-12-18 11:52:02

阅读数 223

评论数 0

CCF入门P231练习6:ISBN号码

Vijos链接题目每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表...

2016-12-18 10:48:57

阅读数 252

评论数 0

高精度整数(n进制,n<=10)加法

一、概述高精度整数的意思即是数据范围极大,已经无法用unsigned long long存储的数据的运算。很多OJ中都有相关练习题(如a+b升级版等),而对于故意给出极大数据的题目此算法为常用算法。 本章仅研究对于10进制以内(2进制~10进制)数的加法。本章将使用例题的讲解方法。二、例题例题1...

2016-12-15 17:57:47

阅读数 1049

评论数 0

数论:整数规则

一、常见数字的整除判定方法1.一个数的末位能被2或5整除,这个数就能被2或5整除;一个数的末两位能被4或25整除,这个数就能被4或25整除;一个数的末三位能被8或125整除,这个数就能被8或125整除;2.一个位数数字和能被3整除,这个数就能被3整除; 一个数各位数数字和能被9整除,这个数就能被9...

2016-12-14 11:51:01

阅读数 208

评论数 0

CCF入门P204练习5:求所有x^2

题目求所有满足x2=□□□□□□□□□的x,其中每个□中数字都不同,且遍历数字1~9。输入输出示例输入1[无输入]输出111826 12363 12543 14676 15681 15963 18072 19023 19377 19569 19629 20316 22887...

2016-12-13 17:55:15

阅读数 486

评论数 0

CCF入门P216练习6:世博会志愿者

题解#include <cstdio>void sortsubarray(int data[], int begin, int end) { int i, j, k, temp; for(i = begin; i < end; i++) { for...

2016-12-11 11:16:40

阅读数 372

评论数 0

查找算法:二分法查找

一、原理对于长度为n的有序数组,一般我们采用遍历数组的方法找到数据的位置,这样做效率较低。如果我们能采用二分法的思想,逐步拆分成在很小数组内找解,就能节省很多时间。 对于这种方法,只需要使二分法的中间位置指针指向要找的数据,便可得到答案。二、程序使用while循环判断是否mid指向要查找的数据,...

2016-12-11 10:38:00

阅读数 161

评论数 0

排序算法:希尔排序(优化插入排序)

一、原理希尔排序实际上是一种分治思想,将给出数组分为一段段子数组并先对子数组进行直接插入排序,形成部分有序数组,缩小分割子数组的增量,再次重复。这样比遍历线性查找节省时间。二、原理如下图 三、实现#include <cstdio>int main() { int n; ...

2016-12-11 09:57:54

阅读数 251

评论数 0

排序算法:插入排序

一、原理对于长度为n的数组,遍历其中元素,并且将其插入其之前一段有序数据中合适的位置。二、程序(1)从第1个数据取起,向其之前(第0个、…)查找第一个小于该数据的位置为i; (2)将i之后的元素向后转移1位; (3)将该元素放入第i+1位。三、实现#include <cstdio>...

2016-12-11 09:41:55

阅读数 165

评论数 0

CCF入门P141练习5:Cantor斜表

题解#include <cstdio>int main() { int n; scanf("%d", &n); int i, line = 0; for(i = 1;; i++) { line++; ...

2016-12-11 08:56:32

阅读数 224

评论数 0

排序算法:冒泡排序

实现#include <cstdio>int main() { int n; scanf("%d", &n); int data[n + 5]; int i; for(i = 0; i < n; i++) { ...

2016-12-08 17:58:23

阅读数 168

评论数 0

排序算法:选择排序

一、原理(1) 从整个数组中找到最小值,并将其移动至第0位 (2) 从第1位到最后数组找到最小值,并将其移动至第1位 … (n) 从第(n-1)位到最后数组找到最小值,并将其移动至第(n-1)位实现可以使用双嵌套循环,第一层指定数组起点,第二层取出最小值。二、实现#include <c...

2016-12-07 11:56:24

阅读数 190

评论数 0

求“最大连续段和”题目分析

一、题目说明给出一段长度为n的数列,要求从中找出连续的一段来使得总和最大。输入包含两行,第1行表示数列长度为N(N<=100 000),第2行包括N个整数来描述这个数列,每个整数的绝对值不超过1 000。输出只有一个整数,为最大的连续段总和。二、输入输出样例输入1 5 1 -2 3 1 ...

2016-12-06 17:55:25

阅读数 839

评论数 0

CCF入门P130练习6:密码

题解#include <cstdio>int main() { char c; while((c = getchar()) != EOF) { if(c >= 'a' && c <= 'z') { pu...

2016-12-04 16:03:23

阅读数 243

评论数 0

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