青少年编程知识记录 codecoming

【算法】前缀和与差分(1)一维数组前缀和

一、定义

前缀和:是指某序列的前n项和。可以理解成数学上上的数列的前n项和。

差分:是前缀和的逆运算。



二、前缀和的分类

可以分成一维数组的前缀和和二维 数组的前缀和

  • 一维数组前缀和

    定义式:

        

 递推式:

    

  • 二维数组前缀和



定义式:

递推式:

    

三、解决什么问题

前缀和、差分是为了解决某一类问题。比如下面这道题目:

【题目描述】

输入一个长度为n的整数序列。接下来再输入M次询问,每个询问输入一对L, R。对于每次询问,输出原序列中从第L个数到第R个数的和。

【输入描述】

第一行包含两个整数n和m。

第二行包含n个整数,表示整数数列。

接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。

【输出描述】

共m行,每行输出一个询问的结果。

【样例输入】

5 3  2 1 3 6 4  1 2  1 3  2 4

【样例输出】

3  6  10

【数据范围】

1≤l≤r≤n,

1≤n,m≤100000,

−1000≤数列中元素的值≤1000

作者:亿万年的星光 分类:趣味小程序 浏览:

EasyX小游戏—双人反弹球

参考代码:#include <conio.h> #include <graphics.h> #include<windows.h> #define High 480  // 游戏画面尺寸 #define Width 640 // 全局变量 int ball_x,ball_y; // 小球的坐标 int bal
作者:亿万年的星光 分类:趣味小程序 浏览:

EasyX—制作复杂动画效果

这篇文章来简单学习一下复杂动画效果。本文资源下载地址:这里参考代码#include <graphics.h> #include <conio.h> int main() { initgraph(480, 300); IMAGE img_human,img_walls; // 定义 IMAGE 对象 loadimage(&img_human, "D:
作者:亿万年的星光 分类:趣味小程序 浏览:

【C++图形化编程】飞机大战2——运动与碰撞检测

上一篇中,简单实现了飞机大战的基本框架,这篇文章继续完善,使其可以进行游戏。#include <graphics.h> #include <conio.h> #include <math.h> #include <stdio.h> // 引用 Windows Multimedia API #pragma comment(lib,"Win
作者:亿万年的星光 分类:趣味小程序 浏览:

【C++图形化编程】飞机大战1—基础资源导入与基本框架

0.前言前面几篇文章中,我们实现了flappy的小游戏,这篇文章中,我们尝试制作飞机大战的游戏。首先,效果图如下:基础资源导入下载图片及音乐资源:https://box356.lanzoui.com/ilIEfwg5lcb下载解压后的图片及音乐资源如下:2.游戏基础框架#include <graphics.h> #include <conio.h> #include <math.h> #include <st
作者:亿万年的星光 分类:趣味小程序 浏览:

【C++图形化编程】flappy bird(2)—游戏逻辑与完善

0.前言    上一篇中,我们简单完成了flappy的图像导入和基本架构。这一篇文章中,我们继续完善。1.游戏逻辑这个游戏的简单逻辑就是:(1)初始状态(游戏一开始),小鸟就一直往下落,如果落地,则游戏结束            意为:小鸟的坐标会一直变化(往下),如果坐标到游戏边框的底部(高度),则游戏结束  (2) 
作者:亿万年的星光 分类:趣味小程序 浏览:

【C++图形化编程】flappy bird(1)—基础框架及图形图像

0.前言    前面一篇文章,我们简单介绍了鼠标的一些操作, 这篇文章,我们还是一个实战教程,flappy bird的小游戏。1.导入背景和音乐    一个小游戏,一般会有正常的背景和音乐,这个小游戏也是,所以我们先下载这个小游戏需要的背景和音乐。下载链接:https://box356.lanzoui.com/iTibzw7bgvc下载解压后就可以看到下面的内容,这就是我们要用的图片素材。有两个声音文件,其余都是图像文件。首先说一下,如

C++小游戏——flappy bird简单实现

上一篇小游戏中,我们简单实现了打砖块小游戏。这一篇中,我们根据前面的框架,简单实现flappy bird小游戏。1.游戏框架   2.实现下落的小鸟#include <cstdio> #include <cstdlib> #include <conio.h> #include <windows.h> // 全局变量 int high,width; 
作者:亿万年的星光 分类:趣味小程序 浏览:

C++小游戏—反弹球实现打砖块

0.前言在上一篇中,我们用C++代码实现了弹球小游戏,上一篇链接可以点击这里查看。这一篇中,我们继续优化代码,使用上一篇的弹球小游戏进行扩展,实现打砖块效果。1.思路底部挡板跟随键盘移动在顶部生成目标物—砖块小球在底部挡板中向一个方向移动小球碰到墙壁反弹,小球碰到砖块,砖块消失,游戏结束小球碰到底部除挡板外的位置,游戏结束。2.游戏框架#include<cstdio> #include<iostream> #include<conio.h> #inclu
作者:亿万年的星光 分类:趣味小程序 浏览: