长春朝阳网站建设,注册有限公司需要什么条件,近三年成功的营销案例,网站cms系统目录
注意#xff1a;递推开long long
1140#xff1a;验证子串
1131#xff1a;基因相关性
1176#xff1a;谁考了第k名
1177#xff1a;奇数单增序列
1180#xff1a;分数线划定
1184#xff1a;明明的随机数
1185#xff1a;单词排序
1186#xff1a;出现…目录
注意递推开long long
1140验证子串
1131基因相关性
1176谁考了第k名
1177奇数单增序列
1180分数线划定
1184明明的随机数
1185单词排序
1186出现次数超过一半的数
1187统计字符数
1310【例2.2】车厢重组
1188菲波那契数列(2)
递推版
递归版
1189Pell数列
递推版
1190上台阶
递推版 注意递推开long long 1140验证子串 【题目描述】 输入两个字符串验证其中一个串是否为另一个串的子串。 【输入】 输入两个字符串 每个字符串占一行长度不超过200且不含空格。 【输出】 若第一个串s1是第二个串s2的子串则输出(s1) is substring of (s2) 否则若第二个串s2是第一个串s1的子串输出(s2) is substring of (s1) 否则输出 No substring。 【输入样例】 abc
dddncabca 【输出样例】 abc is substring of dddncabca
#includeiostream
#includestring
#includemap
#includealgorithm
using namespace std;
const int N 1e2 10;
int a[N];
int cnt;
int main()
{string s1, s2;cin s1 s2;if (s1.length() s2.length()){if (s1.find(s2) ! -1)cout s2 is substring of s1;elsecout No substring;}elseif (s2.find(s1) ! -1)cout s1 is substring of s2;elsecout No substring;
}
1131基因相关性 【题目描述】 为了获知基因序列在功能和结构上的相似性经常需要将几条不同序列的DNA进行比对以判断该比对的DNA是否具有相关性。 现比对两条长度相同的DNA序列。定义两条DNA序列相同位置的碱基为一个碱基对如果一个碱基对中的两个碱基相同的话则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的否则不相关。 【输入】 有三行第一行是用来判定出两条DNA序列是否相关的阈值随后2行是两条DNA序列(长度不大于500)。 【输出】 若两条DNA序列相关则输出“yes”否则输出“no”。 【输入样例】 0.85
ATCGCCGTAAGTAACGGTTTTAAATAGGCC
ATCGCCGGAAGTAACGGTCTTAAATAGGCC 【输出样例】 yes #includeiostream
#includestring
#includemap
#includealgorithm
using namespace std;
const int N 1e2 10;
int a[N];
double cnt,ans;
int main()
{double k; cin k;string s1, s2;cin s1 s2;for(int i1;is1.size();i){if (s1[i] s2[i])cnt;}ans cnt/ s1.length();if (ans k)cout yes;elsecout no;
}
1176谁考了第k名 【题目描述】 在一次考试中每个学生的成绩都不相同现知道了每个学生的学号和成绩求考第k名学生的学号和成绩。 【输入】 第一行有两个整数分别是学生的人数n1≤n≤100n1≤n≤100和求第k名学生的k1≤k≤nk1≤k≤n。 其后有nn行数据每行包括一个学号整数和一个成绩浮点数中间用一个空格分隔。 【输出】 输出第kk名学生的学号和成绩中间用空格分隔。注请用%g%g输出成绩 【输入样例】 5 3
90788001 67.8
90788002 90.3
90788003 61
90788004 68.4
90788005 73.9 【输出样例】 90788004 68.4 #includeiostream
#includestring
#includemap
#includealgorithm
using namespace std;
const int N 1e2 10;
struct stu { int id; double score; }s[N];
bool cmp(stu a, stu b) { return a.score b.score; }
int main()
{int n, k; cin n k;for (int i 1; i n; i)cin s[i].id s[i].score;sort(s 1, s 1 n, cmp);cout s[k].id s[k].score;return 0;
}
1177奇数单增序列 【题目描述】 给定一个长度为N不大于500的正整数序列请将其中的所有奇数取出并按升序输出。 【输入】 第1行为 N 第2行为 N 个正整数其间用空格间隔。 【输出】 增序输出的奇数序列数据之间以逗号间隔。数据保证至少有一个奇数。 【输入样例】 10
1 3 2 6 5 4 9 8 7 10 【输出样例】 1,3,5,7,9 输入数字判断奇偶如果是偶数就存入数组最后利用sort函数排序
#includeiostream
#includestring
#includevector
#includemap
#includealgorithm
using namespace std;
const int N 1e2 10;
int main()
{vectorinta;int n; cin n ;for (int i 1; i n; i){int x; cin x;if (x % 2 1)a.push_back(x);}sort(a.begin(), a .end());for (int i 0; i a.size() - 1; i)cout a[i] ,;cout a[a.size()-1];return 0;
}
1180分数线划定 【题目描述】 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才A市对所有报名的选手进行了笔试笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%150%划定即如果计划录取mm名志愿者则面试分数线为排名第m×150%m×150%向下取整名的选手的分数而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。 现在就请你编写程序划定面试分数线并输出所有进入面试的选手的报名号和笔试成绩。 【输入】 第一行两个整数nm5≤n≤50003≤m≤nnm5≤n≤50003≤m≤n中间用一个空格隔开其中nn 表示报名参加笔试的选手总数mm 表示计划录取的志愿者人数。输入数据保证m×150%m×150%向下取整后小于等于nn。 第二行到第 n1n1 行每行包括两个整数中间用一个空格隔开分别是选手的报名号k1000≤k≤9999k1000≤k≤9999和该选手的笔试成绩s1≤s≤100s1≤s≤100。数据保证选手的报名号各不相同。 【输出】 第一行有两个整数用一个空格隔开第一个整数表示面试分数线第二个整数为进入面试的选手的实际人数。 从第二行开始每行包含两个整数中间用一个空格隔开分别表示进入面试的选手的报名号和笔试成绩按照笔试成绩从高到低输出如果成绩相同则按报名号由小到大的顺序输出。 【输入样例】 6 3
1000 90
3239 88
2390 95
7231 84
1005 95
1001 88 【输出样例】 88 5
1005 95
2390 95
1000 90
1001 88
3239 88【提示】 样例说明m×150%3×150%4.5m×150%3×150%4.5向下取整后为44。保证44个人进入面试的分数线为8888但因为8888有重分所以所有成绩大于等于8888的选手都可以进入面试故最终有55个人进入面试。 #includeiostream
#includestring
#includevector
#includemap
#includealgorithm
using namespace std;
const int N 51e3 10;
struct p { int id; int score; }a[N];
int cmp(p a, p b)
{if (a.score b.score)return a.id b.id;return a.score b.score;
}
int main()
{int n, m; cin n m;for (int i 1; i n; i){cin a[i].id a[i].score;}sort(a 1, a 1 n, cmp);int line m * 1.5;int sum 0;for (int i 1; i n; i){if (a[i].score a[line].score)sum;}cout a[line].score sum endl;;for (int i 1; i sum; i){cout a[i].id a[i].score endl;}return 0;
}
1184明明的随机数 【题目描述】 明明想在学校中请一些同学一起做一项问卷调查为了实验的客观性他先用计算机生成了N个1到1000之间的随机整数N≤100对于其中重复的数字只保留一个把其余相同的数去掉不同的数对应着不同的学生的学号。然后再把这些数从小到大排序按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 【输入】 有2行第1行为1个正整数表示所生成的随机数的个数N 第2行有N个用空格隔开的正整数为所产生的随机数。 【输出】 也是2行第1行为1个正整数M表示不相同的随机数的个数。第2行为M个用空格隔开的正整数为从小到大排好序的不相同的随机数。 【输入样例】 10
20 40 32 67 40 20 89 300 400 15 【输出样例】 8
15 20 32 40 67 89 300 400 #includeiostream
#includestring
#includevector
#includemap
#includeset
#includealgorithm
using namespace std;
const int N 51e3 10;
int main()
{int n; cin n;setints;for (int i 1; i n; i){int x;cin x;s.insert(x);}cout s.size() endl;for (auto c : s)cout c ;return 0;
}
1185单词排序 【题目描述】 输入一行单词序列相邻单词之间由1个或多个空格间隔请按照字典序输出这些单词要求重复的单词只输出一次。区分大小写 【输入】 一行单词序列最少1个单词最多100个单词每个单词长度不超过50单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。 【输出】 按字典序输出这些单词重复的单词只输出一次。 【输入样例】 She wants to go to Peking University to study Chinese 【输出样例】 Chinese
Peking
She
University
go
study
to
wants #includeiostream
#includestring
#includevector
#includemap
#includeset
#includealgorithm
using namespace std;
const int N 51e3 10;
int main()
{string s;mapstring,intmp;while (cin s){mp.insert({ s,1 });}for (auto c : mp)cout c.first endl;return 0;
}
1186出现次数超过一半的数 【题目描述】 给出一个含有n0 n 1000个整数的数组请找出其中出现次数超过一半的数。数组中的数大于-50且小于50。 【输入】 第一行包含一个整数n表示数组大小 第二行包含n个整数分别是数组中的每个元素相邻两个元素之间用单个空格隔开。 【输出】 如果存在这样的数输出这个数否则输出no。 【输入样例】 3
1 2 2 【输出样例】 2 #includeiostream
#includestring
#includevector
#includemap
#includeset
#includealgorithm
using namespace std;
const int N 1e3 10;
int a[N], cnt[N];
int main()
{int n; cin n; int x;for (int i 1; i n; i){cin x;cnt[x50];}for (int i 1; i 100; i){if (cnt[i] n / 2){cout i-50;return 0;} }cout no;return 0;
}
1187统计字符数 【题目描述】 给定一个由a-z这26个字符组成的字符串统计其中哪个字符出现的次数最多。 【输入】 输入包含一行一个字符串长度不超过1000。 【输出】 输出一行包括出现次数最多的字符和该字符出现的次数中间以一个空格分开。如果有多个字符出现的次数相同且最多那么输出ascii码最小的那一个字符。 【输入样例】 abbccc 【输出样例】 c 3 #includeiostream
#includestring
#includevector
#includemap
#includeset
#includealgorithm
using namespace std;
const int N 1e3 10;
char cnt[N];
int main()
{string s; cin s;for (int i 0; i s.size(); i){cnt[s[i]];}int max 0; char maxid a;for (char i a; i z; i){if (cnt[i] max || cnt[i] max i maxid){max cnt[i];maxid i;}}cout maxid max;return 0;
}
1310【例2.2】车厢重组 【题目描述】 在一个旧式的火车站旁边有一座桥其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢如果将桥旋转180度则可以把相邻两节车厢的位置交换用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后火车站决定将这一工作自动化其中一项重要的工作是编一个程序输入初始的车厢顺序计算最少用多少步就能将车厢排序。 【输入】 有两行数据第一行是车厢总数N不大于10000第二行是N个不同的数表示初始的车厢顺序。 【输出】 一个数据是最少的旋转次数。 【输入样例】 4
4 3 2 1 【输出样例】 6 #includeiostream
#includestring
#includevector
#includemap
#includeset
#includealgorithm
using namespace std;
const int N 1e3 10;
int a[N];
int cnt;
int main()
{int n;cin n;for (int i 1; i n; i){cin a[i];}//外层遍历n-1次for (int j 1; j n-1; j){for (int i 1; i n-j; i){if (a[i] a[i 1]){swap(a[i 1], a[i]);cnt;}}} cout cnt;return 0;
}1188菲波那契数列(2) 【题目描述】 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为11接下来每个数都等于前面22个数之和。 给出一个正整数aa要求菲波那契数列中第aa个数对10001000取模的结果是多少。 【输入】 第11行是测试数据的组数nn后面跟着nn行输入。每组测试数据占1行包括一个正整数a(1≤a≤1000000)a(1≤a≤1000000)。 【输出】 nn行每行输出对应一个输入。输出应是一个正整数为菲波那契数列中第aa个数对10001000取模得到的结果。 【输入样例】 4
5
2
19
1 【输出样例】 5
1
181
1 递推版
#includeiostream
#includestring
#includevector
#includemap
#includeset
#includealgorithm
using namespace std;
const int N 1e6 10;
int a[N];
int main()
{int n; cin n;a[1] a[2] 1;int m 1000;for (int i 3; i 1e6; i)a[i](a[i-1]%ma[i-2]%m)%m;for (int i 1; i n; i){int x; cin x;cout a[x] endl;}return 0;
}
递归版
#includeiostream
#includestring
#includevector
#includemap
#includeset
#includealgorithm
using namespace std;
const int N 1e6 10;
int a[N]; int m 1000;
int fbnq(int x)
{if (x 2) return 1;return (fbnq(x - 1) % m fbnq(x - 2) % m) % m;
}
int main()
{int n; cin n;for (int i 1; i n; i){int x; cin x;cout fbnq(x) endl;;}return 0;
}
1189Pell数列 【题目描述】 Pell数列a1,a2,a3,...a1,a2,a3,...的定义是这样的a11,a22,...,an2an−1an−2(n2)a11,a22,...,an2an−1an−2(n2)。 给出一个正整数k要求Pell数列的第k项模上32767是多少。 【输入】 第1行是测试数据的组数n后面跟着n行输入。每组测试数据占1行包括一个正整数k (1≤k1000000)。 【输出】 n行每行输出对应一个输入。输出应是一个非负整数。 【输入样例】 2
1
8 【输出样例】 1
408 递推版
#includeiostream
#includestring
#includevector
#includemap
#includeset
#includealgorithm
using namespace std;
const int N 1e6 10;
int a[N]; int m 32767;
int main()
{int n; cin n;a[1] 1; a[2] 2;for (int i 3; i 1e6; i){a[i] ( 2 * a[i - 1]%m a[i - 2]%m)%m;}for (int i 1; i n; i){int x; cin x;cout a[x] endl;}return 0;
}
递归版
#includeiostream
#includestring
#includevector
#includemap
#includeset
#includealgorithm
using namespace std;
const int N 1e6 10;
int a[N]; int m 32767;
int pell(int x)
{if (x 2)return x;return (2 * pell(x - 1) % m pell(x - 2) % m) % m;
}
int main()
{int n; cin n;a[1] 1; a[2] 2;for (int i 1; i n; i){int x; cin x;cout pell(x) endl;}return 0;
}
1190上台阶 【题目描述】 楼梯有nn(0n710n71)阶台阶,上楼时可以一步上11阶,也可以一步上22阶,也可以一步上33阶编程计算共有多少种不同的走法。 【输入】 输入的每一行包括一组测试数据即为台阶数nn。最后一行为00表示测试结束。 【输出】 每一行输出对应一行输入的结果即为走法的数目。 【输入样例】 1 2 3 4 0 【输出样例】 1
2
4
7 搜索版
#includeiostream
#includestring
#includevector
#includemap
#includeset
#includealgorithm
using namespace std;
const int N 1e2 10;
int cnt;
int x;//当前所站在的台阶数
int d[] { 1,2,3 };
void dfs(int stairs)
{if (stairs 0)return;if (stairs 0){cnt;return;}for (int i 0; i 3; i){stairs - d[i];dfs(stairs);stairs d[i];}
}
int main()
{while (cin x x){cnt 0;dfs(x);cout cnt endl;;}return 0;
}
递推版
#includeiostream
using namespace std;
#define int long long
const int N 1e2 10;
int cnt;
int a[N];
int x;//当要走到的台阶
signed main()
{a[1] 1, a[2] 2, a[3] 4;for (int i 4; i 71; i){a[i] a[i - 3] a[i - 2] a[i - 1];}while (cin x x!0){cout a[x] endl;}return 0;
}