AOJ 592.神奇的叶子

水题

等差数列求和

 1 #include <cstdio>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cmath>
 5 #include <string>
 6 #include <iostream>
 7 #include <vector>
 8 using namespace std;
 9
10 #define REP(n) for(int o=0;o<n;o++)
11
12 int main() {
13     int a1,n,d;
14     scanf("%d%d%d",&a1,&n,&d);
15     printf("%d\n",a1*n + (n*(n - 1)*d) / 2);
16     return 0;
17 }
时间: 2024-10-24 18:00:40

AOJ 592.神奇的叶子的相关文章

算法14---B树

算法14---B树 更详细的讲解见http://www.xuebuyuan.com/509072.html 一棵m阶的B 树 (m叉树)的特性,如下: (1)树中每个结点含有最多含有个孩子,即m满足:ceil(m/2)-1<=n<=m-1. (2)除根结点和叶子结点外,其它每个结点至少有[ceil(m / 2)]个孩子(其中ceil(x)是一个取上限的函数): (3)若根结点不是叶子结点,则至少有2个孩子(特殊情况:没有孩子的根结点,即根结点为叶子结点,整棵树只有一个根节点): 1.1.插入(

AC日记——神奇的幻方 洛谷 P2615(大模拟)

题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. 之后,按如下方式从小到大依次填写每个数K(K=2,3,…,N*N): 1.若(K−1)在第一行但不在最后一列,则将K填在最后一行,(K−1)所在列的右一列: 2.若(K−1)在最后一列但不在第一行,则将K填在第一列,(K−1)所在行的上一行: 3.若(K−1)在第一行最后一列,则将K填在(K−1)

[NOIP2015] 提高组 洛谷P2615 神奇的幻方

题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. 之后,按如下方式从小到大依次填写每个数K(K=2,3,…,N*N): 1.若(K−1)在第一行但不在最后一列,则将K填在最后一行,(K−1)所在列的右一列: 2.若(K−1)在最后一列但不在第一行,则将K填在第一列,(K−1)所在行的上一行: 3.若(K−1)在第一行最后一列,则将K填在(K−1)

洛谷-神奇的幻方-NOIP2015提高组复赛

题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. 之后,按如下方式从小到大依次填写每个数K(K=2,3,…,N*N): 1.若(K−1)在第一行但不在最后一列,则将K填在最后一行,(K−1)所在列的右一列: 2.若(K−1)在最后一列但不在第一行,则将K填在第一列,(K−1)所在行的上一行: 3.若(K−1)在第一行最后一列,则将K填在(K−1)

#define中 #与##的神奇用法linux学习 (转)

#define中 #与##的神奇用法linux学习 (转) #define f(a,b) a##b #define d(a) #a #define s(a) d(a) void main( void ) { puts(d(f(a,b))); puts(s(f(a,b))); } 输出结果: f(a,b) ab 分析: ##把两个符号连起来 #a指把a当成符号,就是把#后面的看成字符串 # 和 ## 操作符是和#define宏使用的. 使用# 使在#后的首个参数返回为一个带引号的字符串. 例如,

洛谷——P2615 神奇的幻方 【Noip2015 day1t1】

https://www.luogu.org/problem/show?pid=2615 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. 之后,按如下方式从小到大依次填写每个数K(K=2,3,…,N*N): 1.若(K−1)在第一行但不在最后一列,则将K填在最后一行,(K−1)所在列的右一列: 2.若(K−1)在最后一列但不在第一行,则将K填在第

Greedy:Paint Color(AOJ 0531)

涂颜料 题目大意:在一个1000000*1000000的矩阵中放入几块木板,问你这些木板把矩阵划分成了几个区域?输入会给左下角和右上角的坐标,输入W==0且H==0结束. 这一题是书上的作业题,书上有一道差不多的例题,但是书上那道例题是用的直线的,而且他的坐标是点格,而这道题是坐标(这个很重要,我一开始没有区分好导致理解不了).那么这一题肯定要用到坐标压缩的(1000000*1000000太大了,我们可以把木板压缩到最小就可以了),标准的直接看代码就好了,很容易理解. 然后现在这题很难的一个地方

计算机程序的思维逻辑 (45) - 神奇的堆

前面几节介绍了Java中的基本容器类,每个容器类背后都有一种数据结构,ArrayList是动态数组,LinkedList是链表,HashMap/HashSet是哈希表,TreeMap/TreeSet是红黑树,本节介绍另一种数据结构 - 堆. 引入堆 之前我们提到过堆,那里,堆指的是内存中的区域,保存动态分配的对象,与栈相对应.这里的堆是一种数据结构,与内存区域和分配无关. 堆是什么结构呢?这个我们待会再细看.我们先来说明,堆有什么用?为什么要介绍它? 堆可以非常高效方便的解决很多问题,比如说:

《啊哈!算法》第7章 神奇的树

第3节 堆排序 把n个元素建立一个堆,首先将这n个结点以自顶向下.从左到右的方式从1到n编码,这样可以把n个结点转换成一颗完全二叉树 紧接着从最后一个非叶子结点(结点编号为n/2)开始到根节点(结点编号为1),逐个扫描所有结点,根据需要将当前结点向下调整,直到以当前结点为根结点的子树符合堆的特性. #include <iostream> #include <vector> #include <algorithm> using namespace std; //向下调整函