信息学奥赛C++语言——1003:对齐输出

【题目描述】 读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们,按照格式要求依次输出三个整数,之间以一个空格分开。 【输入】 只有一行,包含三个整数,整数之间以一个空格分开。 【输出】 只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。 【输入样例】 123456789 0 -1 【输出样例】 123456789 0 -1 代码 #include <cstdio> using namespace std; int main () { int a,b,c; scanf("%
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

信息学奥赛C++语言——1005:地球人口承载力估计

【题目描述】 假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供x亿人生活a年,或供y亿人生活b年。 为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人? 【输入】 一行,包括四个正整数x,a,y,b,两个整数之间用单个空格隔开。x>y,a<b,ax<by,各整数均不大于10000。 【输出】 一个实数z,表示地球最多养活z亿人,舍入到小数点后两位。 【输入样例】 110 90 90 210 【输出样例】 75.00 代码 #include <cstdio
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

信息学奥赛C++语言:重组

【题目描述】 输入一个四位数,截取千位和百位组成一个两位数,剩下十位和个位组成新数,求出两个新数的平方的和。 如,2025,即为20^2 + 25^2 =1025 【输入】 一个四位数 【输出】 重组后的新数 【输入样例】 2025 【输出样例】 1025 代码 #include<iostream> using namespace std; int main() { int qian,bai,shi,ge,a,s1,s2,s; cin>>a; ge=a%10; shi
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

信息学奥赛C++语言:三位数的翻转

【题目描述】 要求从键盘输入一个三位数,要求百位变十位,十位变个位,个位变百位 【输入】 输入只有一行,只有一个三位数的整数。 【输出】 输出只有一行。 【输入样例】 123 【输出样例】 312 代码 #include<cstdio> using namespace std; int main() { int ge,shi,bai,n; scanf("%d",&n); ge=n%10; shi=n/10%10; bai=n/100%10;
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

信息学奥赛C++语言:三位数的求和

【题目描述】 对于一个任意的三位自然数X,编程计算其各个数位上的数字之和S。 【输入】 输入一行,只有一个整数x(100<=x<=999) 【输出】 输出只有一行,包括1个整数。 【输入样例】 123 【输出样例】 6 代码 #include<cstdio> using namespace std; int main() { int ge,shi,bai,n; scanf("%d",&n); ge=n%10; shi=n/10%10; bai=n/
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

Mad Counting(LightOJ-1148)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011815404/article/details/88748873 Problem Description Mob was hijacked by the mayor of the Town "TruthTown". Mayor wants Mob to count the total population of the town. Now the naive approach to this
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

设计模式 —— 概述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011815404/article/details/88749250 【概述】 设计模式,是在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。 在 1995 年,GOF 出版的《设计模式:可复用面向对象软件的基础》,第一次将设计模式提升到理论高度,并将之规范化,该书提出了 23 种基本设计模式,自此,在可复用面向对象软件的发展过程中,新的大量的设计模式不断出现。 一
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

设计模式 —— 七大设计原则

【概述】 设计原则是设计模式的理论指导,其共有 7 个,不同的设计模式遵循的原则个数各不相同。 单一职责原则:仅有一个引起变化的职责 开发-封闭原则:对扩展开发,对修改关闭 里氏代换原则:子类可替代父类 依赖倒转原则:依赖于抽象 迪米特法则:软件实体之间应尽可能少的发生作用 合成聚合原则:合成聚合优于继承 接口隔离原则:多接口优于单接口 【单一职责原则】 单一职责原则(SRP,Single Responsibility Principle):就一个类而言,仅有一个引起它变化的原因。 如果一个类
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

Monkey Tradition(LightOJ-1319)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011815404/article/details/88762017 Problem Description In 'MonkeyLand', there is a traditional game called "Bamboo Climbing". The rules of the game are as follows: 1) There are N monkeys who play thi
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

Combinations(LightOJ-1067)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011815404/article/details/88763083 Problem Description Given n different objects, you want to take k of them. How many ways to can do it? For example, say there are 4 items; you want to take 2 of the
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

数学 —— 组合数学 —— 卢卡斯定理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011815404/article/details/88763414 【卢卡斯定理】 1.要求:p 是素数,m、n 很大但 p 很小 或者 n、m不大但大于 p 2.定理结论 1) 其中, 2)将 n 写成 p 进制:,将 m 写成 p 进制:,则有: 模 p 同余。 3)代码实现可以简单理解为: 3.实现 LL fac[N]; void getFac(){//构造阶乘 fac[0]=
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

数学 —— 组合数学 —— 组合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011815404/article/details/88763537 【概念】 1.组合:从 n 个元素的集合 S 中,无序的选出 r 个元素,叫做 S 的一个 r 组合。 如果两个组合中,至少有一个元素不同,它们就被认为是不同的组合。 2.组合数:所有不同组合的个数,叫做组合数,记作: 或 由于每一种组合都可以扩展到 r!种排列,而总排列为 P(n,r) ,所以组合数 特别的,C(n,0)=1
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

Problem Makes Problem(LightOJ-1102)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011815404/article/details/88763849 Problem Description As I am fond of making easier problems, I discovered a problem. Actually, the problem is 'how can you make n by adding k non-negative integers?'
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

Rooks(LightOJ-1005)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011815404/article/details/88763903 Problem Description A rook is a piece used in the game of chess which is played on a board of square grids. A rook can only move vertically or horizontally from its
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

设计模式 —— 简单工厂模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011815404/article/details/88768268 【概述】 简单工厂模式根据提供给它的数据,动态的返回几个可能类中的一个类的实例,通常它返回的类都有一个公共的父类和公共的方法,其本质是选择实现。 【UML】 简单工厂模式涉及到了三个角色: 工厂类角色:Factory,工厂类在客户端的直接控制下,通过 createProduct() 方法创建产品对象 具体产品角色:Produc
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

1034 有理数四则运算(C语言)

设计思路: 先约分,后输出 约分过程需要找最大公约数 编译器:C (gcc) #include <stdio.h> void printrational(long a, long b); long MaxCommonDivisor(long a, long b); int main() { long a1, b1, a2, b2; char ch[4] = {'+', '-', '*', '/'}; int i; scanf("%ld/%ld %ld/%l
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

1035 插入与归并(C语言)

设计思路: 插入排序的判断: (开头一部分一定有序)&&(无序部分与原序列一致) 归并排序的判断: 排除法 插入排序迭代一次: 从断点迭代一次即可 归并排序迭代一次: 方法一:对原序列归并排序,匹配到题目第 2 个序列后,再迭代一次 方法二:关键在于确定归并段长度,然后列用归并段长度迭代一次第 2 个序列。 寻找归并段长度: 1.设初始长度 L = 2(长度为 1 无意义) 2.如图:(每个 L 范围内均有序)&&(每 2L 范围内均有序),则 L = 2L,否则终止。最终找到归并段长度 L。
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

1026 程序运行时间(C语言)

设计思路: 整数除法是截断取整,故四舍五入通过原始值加 50 实现(加 50 是因为除数是 100) 编译器:C (gcc) #include <stdio.h> int main() { int c1, c2, t; scanf("%d %d", &c1, &c2); t = (c2 - c1 + 50) / 100; printf("%02d:%02d:%02d\n", t/3600, t%3600/60, t%60); return 0; }
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

1027 打印沙漏(C语言)

设计思路: * ** *** 如图仅观察一半图形,可设 n 为总行数,则第 m 行: 空格数 = n - m 符号数 = m * 2 -1 编译器:C (gcc) #include <stdio.h> int main() { int n, m, i, j; char ch; scanf("%d %ch", &n, &ch); for(m = 1; 2*m*m-1 <= n; m++){ continue; } m--;
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0

1036 跟奥巴马一起编程(C语言)

设计思路: 行数 == 1 || 行数 == (n - 1) / 2 || 列数 == 1 || 列数 == n,时输出符号 编译器:C (gcc) #include <stdio.h> int main() { int n; char ch; int i, j; scanf("%d %c", &n, &ch); for(i = 0; i < (n + 1) / 2; i++){ if(i == 0 || i == (n + 1) /
分类: 其他 发布时间: 03-23 22:51 阅读次数: 0