最大质因数
试题 算法训练 最大质因数资源限制时间限制:1.0s 内存限制:256.0MB问题描述 给出N个数字,求出有最大的最大质因数的那个数输入格式 第一行:一个整数N。 接下来的N行,每行一个整数A_i,表示给出的那N个数字。输出格式 第一行:一个整数,拥有最大的最大质因数的那个数。样例输入436384042样例输出38数据规模和约定 60%的数据满足:N<=100 100%的数据满足:N<=2500,A_i<=20000
#include<iostream>using namespace std;int GetMaxPrime(int n) { int i = 2; int res = 1; while (n > 2) { if (n%i == 0) { n /= i; res = i; } else i++; } return res;}int main(){ int n; cin>>n; int a[n]; for(int i= ...
最小乘积(基本型)
试题 算法训练 最小乘积(基本型)资源限制时间限制:1.0s 内存限制:512.0MB问题描述 给两组数,各n个。 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。 例如两组数分别为:1 3 -5和-2 4 1
那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25输入格式 第一个行一个数T表示数据组数。后面每组数据,先读入一个n,接下来两行每行n个数,每个数的绝对值小于等于1000。 n<=8,T<=1000输出格式 一个数表示答案。样例输入231 3 -5-2 4 151 2 3 4 51 0 1 0 1
样例输出
-256
#include <iostream>#include <algorithm>using namespace std;int main(){ int T,i,n,sum,a[10],b[10]; cin>>T; while(T--){ cin ...
求1000以内的完数
试题 算法训练 求1000以内的完数资源限制时间限制:1.0s 内存限制:256.0MB问题描述 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。例如6的因子是1,2,3,且6=1+2+3,因此6是完数。编写程序找出1000之内的所有完数。注意1不是完数。输入格式 无输出格式 如有多个完数,则分行输出,每行输出一个完数。(注意,不要输出其他任何多余字符)
#include<iostream>using namespace std;int main(){ for(int i=2;i<=1000;i++){ int sum=0; for(int j=1;j<i;j++){ if(i%j==0){ sum+=j; } } if(sum==i){ cout<<i<<endl; } } return 0;}
矩阵乘法
矩阵乘法试题 算法训练 矩阵乘法
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 输入两个矩阵,分别是ms,sn大小。输出两个矩阵相乘的结果。输入格式 第一行,空格隔开的三个正整数m,s,n(均不超过200)。 接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。 接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。输出格式 m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。样例输入2 3 21 0 -11 1 -30 31 23 1样例输出-3 2-8 2
提示矩阵C应该是m行n列,其中C(i,j)等于矩阵A第i行行向量与矩阵B第j列列向量的内积。例如样例中C(1,1)=(1,0,-1)(0,1,3) = 1 * 0 +01+(-1)*3=-3
#include<iostream>using namespace std;int main(){ int a[200][200]; int b[200][200]; int c[200][200]; int m,s,n; cin>>m>>s& ...
计数问题
试题 算法提高 计数问题 资源限制时间限制:1.0s 内存限制:128.0MB问题描述 试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。输入格式 输入文件名为 count.in。 输入共 1 行,包含 2 个整数 n、x,之间用一个空格隔开。输出格式 输出文件名为 count.out。 输出共 1 行,包含一个整数,表示 x 出现的次数。输入输出样例count.in11 1count.out4数据说明 对于 100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
#include<iostream>using namespace std;int Tongji(int N,int x){ int k=0; while(N){ if(N%10==x) k++; N/=10; } return k;}int ma ...
送分啦
试题 算法训练 送分啦资源限制时间限制:1.0s 内存限制:512.0MB问题描述 这题想得分吗?想,请输出“yes”;不想,请输出“no”。输出格式 输出包括一行,为“yes”或“no”。
//送分啦#include<iostream>#include<stdlib.h>using namespace std;int main(){ int a=rand(); if(a%2==1){ cout<<"yes"; } if(a%2==0){ cout<<"no"; } return 0;}
首字母变大写
试题 算法训练 首字母变大写资源限制时间限制:1.0s 内存限制:512.0MB问题描述 对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(‘ ‘)、制表符(‘\t’)、回车符(‘\r’)、换行符(‘\n’)输入格式 输入一行:待处理的字符串(长度小于80)输出格式 输出一行:转换后的字符串。样例输入if so, you already have a google account. you can sign in on the right.样例输出If So, You Already Have A Google Account. You Can Sign In On The Right.
#include<iostream>using namespace std;int main(){ string A; getline(cin,A); for(int i=0;i<A.length()-1;i++){ if(A[i]==32||A[i]==44| ...
短作业(进程)优先调度算法
短作业(进程)优先调度算法
短作业(进程)优先(Shortest Job First,SJF或Shortest Process Next,SPN)是指对短作业或短进程优先调度的算法。该算法可分别用于作业调度和进程调度。该算法的设计目标是改进FCFS算法,减少作业或进程的平均周转时间。
SJF算法要求作业在开始执行之前预计作业的执行时间,对预计执行时间短的作业优先调入内存。
SJF算法和FCFS算法进行比较,SJF有以下优点: 1)改善了平均周转时间和平均带权周转时间,缩短了等待时间;
2)有利于提高系统的吞吐量。
同样具有以下几个缺点:
1)对长作业或进程不利;
2)该算法没有考虑作业或进程的紧迫程度,因而不能保证紧迫的作业或进程得到及时处理或相应;
3)由于作业或进程的执行时间是用户估计的,因而准确性不高,从而影响调度性能;
4)如果系统中持续有更短作业或最短进程出现,可能导致长作业或进程被饿死,即永远得不到执行。
SJF算法的具体实现
SJF的代码(个人的思想不同所以写出来的代码也不一样,仅供参考学习):
void SJF(){ ...
操作系统:FCFS调度算法简单实现
操作系统:FCFS调度算法简单实现
由于本人(小白一个)一直以来想要写博客,加上最近学习操作系统,为了巩固自己的学习成果以及加深印象,现在决定开始写博客,可以说这是我的第一篇博客。
这篇文章主要描述的计算机操作系统的FCFS(先来先服务)的调度算法,可以用在进程调度和作业调度中。它的基本思想是按进程或作业到达的时间先后顺序进行调度。
下面就详细讲下本小白实现此简单算法的基本功能,过程以及思想。 基本功能: 1、输出每个进程的调度时间表 2、上一个进程结束前,下一个进程还没有到达,程序计算周转时间仍然正确
3、进程可以不按到达时间大小排列输入,输出的调度时间表依然正确
首先我们得知道进程是怎么构造的,在这篇文章中我是以结构体数组的形式来构造多个进程,结构体里的各个成分分别表示进程的基本信息,数组的大小为常数 5。 以下是我的进程具体构造:
struct PCB{ char name[8]; //进程名称 int arrive_time; //到达时间 int run_time; ...