
模拟
模拟
每天都要吃肉肉(●'◡'●)
绝不妄自菲薄
展开
-
【2012】字符串的重复输出
题目描述:给一个字符串比如ABC 再给一个整数比如3.输出AAABBBCCC就行了#include <string>#include <iostream>#include <cstdio>using namespace std; int main(){ string str; getline(cin, str); int n; cin >> n; for(int i = 0; i < str.原创 2022-03-12 11:25:57 · 1711 阅读 · 0 评论 -
【2013】四个小正方形放入大正方形
问题描述:Mr. B, Mr. G, Mr. M and their coach Professor S are planning their way for the ACM-ICPC World Finals. Each of the four has a square-shaped suitcase with side length Ai (1<=i<=4) respectively. They want to pack their suitcases into a large squa.原创 2022-03-12 09:04:16 · 673 阅读 · 0 评论 -
【2015工研】计算abc
数值类型一定要声明为double型的,否则上面的样例会输出YES#include<iostream>using namespace std;int main() { double a, b, c; cin >> a >> b >> c; if (a + b == c || a - b == c || b - a == c || a * b == c || a / b == c || b / a == c) cout << ...原创 2022-03-10 21:45:56 · 110 阅读 · 0 评论 -
【2015工研】长方形中的最大正方形
#include<iostream>#include<algorithm>using namespace std;int main() { int x, y; int ans = 0; cin >> x >> y; while (x != y) { ans++; if (x > y) swap(x, y); y -= x; } ans++; cout << ans; system("pause")...原创 2022-03-10 21:01:30 · 222 阅读 · 0 评论 -
【2018工研】求线段交点
求线段交点,输入两组线段端点(整型),求其交点,不相交和无穷交点输出一句话就行,输出交点带小数的。输入: 0 0 5 50 2 2 0输出:1 1#include<iostream>using namespace std;int main() { int x0, y0, x1, y1; int x2, y2, x3, y3; cin >> x0 >> y0 >> x1 >> y1; cin >> x.原创 2022-03-09 22:15:13 · 174 阅读 · 0 评论 -
【2017】ISBN编码(字符串处理)(水题)
题目:给定一个9位数字的ISBN,求其校验位。ISBN格式为2-02-033598,校验位的计算方法如下:从左到右依次将各位数字乘10,9,8,……,2,求出其和S,作模运算得M=S mod 11。若11-M在1和9之间,校验位即为该数字;若11-M等于10,校验位为X;11-M等于11,校验位为0。输出添加校验位的ISBN,如2-02-033598-0。输入:2-02-033598输出2-02-033598-0#include<iostream>#include&原创 2022-03-08 13:38:42 · 208 阅读 · 0 评论 -
【2017】求中位数(水题)
题目:给定一个整数序列,求中位数。如果序列个数为奇数,中位数为升序的中间位置,如果是偶数,这位升序的中间两个数的平均值。输入:52 1 4 3 5输出:3输入:41 4 3 2输出:2.5double型:%.lf表示四舍五入到个位%.2lf表示四舍五入到小数点后两位#include<iostream>#include<algorithm>using namespace std;const int maxn = 1..原创 2022-03-08 12:33:18 · 174 阅读 · 0 评论 -
【2018】求解一元一次方程(字符串处理)(没思路。。)
题目:给定一个字符串,代表一个 一元一次 方程。如果有解求解,输出格式“x=数字” ,如果解的个数无穷,输出 “infinite solutions”,如果没有解输出“no solution”。字符串长度不超过 256 。输入:10x-2x-8=4x+7+x输出:x=5#include<iostream>#include<string>using namespace std;int main() { string s; cin >> s;..原创 2022-03-08 11:38:35 · 484 阅读 · 0 评论 -
【2018工研】求公约数之和
题目:输入一个数n,输出前n个数的约数的和。(印象中有1s的时间限制,大数据集可能超时,比如100000000)。输入:7输出:41约数:整数A除以整数B(B≠0) 除得的商正好是整数而没有余数,我们就说A能被B整除,或B能整除A。A称为B的倍数,B称为A的约数#include<iostream>using namespace std;int gcd(int a, int b) { if (b == 0) return a; else return原创 2022-03-07 20:10:52 · 1870 阅读 · 0 评论 -
【A1082/字符处理】用中文读数字(挺绕的)
#include<iostream>#include<string>using namespace std;char num[20][20] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };char wei[20][20] = { "Shi","Bai","Qian","Wan","Yi" };int main() { string s; cin >> s; int len ...原创 2022-03-05 14:12:29 · 74 阅读 · 0 评论 -
【A1077/字符处理】多字符串的字符比较(思维挺巧妙)
思路:1、为什么做字符反转:每个字符串的长度难以确定,导致很难比较后缀,进行反转后,将后缀转为前缀方便比较2、使用gets一定要注意用getchar吸收多余字符3、比较完最短的字符串就可得到结果#include<iostream>#include<cstring>#include<algorithm>using namespace std;void reverse(char s[],int len) { for (int i = 0; i ..原创 2022-03-05 12:11:35 · 316 阅读 · 0 评论 -
【A1001/字符处理】A+B format
#include<iostream>using namespace std;const int maxn = 110; //数组下标不能设太大会溢出,一般设在250000以内int main() { int a, b; int ans[maxn] = {0}; cin >> a >> b; int temp = a + b; if (temp < 0) { cout << '-'; temp = -temp; } int...原创 2022-03-04 22:14:34 · 62 阅读 · 0 评论 -
【B1048/字符处理】数字加密
#include<iostream>#include<algorithm>using namespace std;const int maxn = 110;int main() { int a, b; int A[maxn] = { 0 }, B[maxn] = { 0 }; //char C[maxn] = { 0 }; 字符数组不初始化会输出 烫烫烫... string C; cin >> a >> b; int m = 0,...原创 2022-03-04 21:38:55 · 143 阅读 · 0 评论 -
【A1035】password(水题)
#include<iostream>#include<string>using namespace std;const int maxn = 1100;struct stu { string name; string password;}stu,res[maxn];int main() { int n,cnt=0; bool flag; cin >> n; for (int i = 0; i < n; i++) { cin >...原创 2022-03-04 19:56:41 · 99 阅读 · 0 评论 -
【A1005/字符处理】(水题)
#include<iostream>using namespace std;const int maxn = 10000;int main() { char mp[20][20] = { "zero","one","two","three","four","five","six","seven","eight","nine" }; int x, ans = 0; int temp[maxn] = {}; cin >> x; while (x != 0) { ...原创 2022-03-04 18:53:09 · 162 阅读 · 0 评论 -
【A1073/字符处理】科学计数法(有点绕)
#include<iostream>#include<string>using namespace std;int main() { string s; cin >> s; int pos = 0; while (s[pos] != 'E') //找到E的位置将底数和指数分割 pos++; int exp = 0; for (int i = pos + 2; i < s.length(); i++) //将字符型的指数化为1...原创 2022-03-04 17:06:26 · 94 阅读 · 0 评论 -
【B1009/字符处理】说反话(二维字符数组)
存储字符串,用二维数组#include<iostream>using namespace std;int main() { char s[90][90]; int i = 0; while (scanf("%s", s[i++]) != EOF); for (int j = i-2; j >= 0; j--){ //-2的原因是while结束i多加了一个1且字符从0开始 cout << s[j]; if(j!=0) cout<<...原创 2022-03-04 12:13:04 · 90 阅读 · 0 评论 -
【2019/模拟】日期处理(巧用数组)
1、题目有两个日期,求两个日期之间的天数输入:2013010120130105输出:42、代码#include<iostream>#include<cstdio>using namespace std;int month[13][2] = { {0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31} };原创 2022-02-28 12:18:26 · 90 阅读 · 0 评论 -
【B1016/模拟】部分A+B(拆解数字)
思路:1、0<A,B<10^10 则A,B都应该为long long型,输出格式为%lld2、类似还有A,B属于[-2^31,2^31],则A+B为long long型#include<iostream>using namespace std;int main() { long long pa = 0, pb = 0; long long a, b; int da, db; cin >> a >> da >> b >..原创 2022-02-28 15:57:30 · 160 阅读 · 0 评论 -
【B1026/模拟】程序运行时间(数->时:分:秒)
1、题目:将两数之差换算为时:分:秒格式输入:123 4577973输出:12:42:592、代码#include<iostream>using namespace std;int main() { int c1, c2; int s; cin >> c1 >> c2; s = (c2 - c1) / 100; printf_s("%02d:%02d:%02d", s / 3600, s %3600/ 60, s%3600原创 2022-02-28 16:06:48 · 119 阅读 · 0 评论 -
【2019工研/模拟】九键输入法(巧用数组)
1、题目:模拟老式手机输入,九宫格布局如下:题目输入为数字或者’-’,其中‘-’代表手机输入时等待的时间间隔,数字表示点击某个按键的次数。比如点击两次 2,则输出为 B,四次 2,则输出为 A。例:输入:255输出:AK输入(等待间隔‘-’可以无限长,也可以没有):2222------55输出:AK2、思路...原创 2022-02-28 16:11:46 · 2661 阅读 · 0 评论 -
【B1018/模拟】锤子剪刀布(巧用数组)
#include<iostream>using namespace std;char mp[3] = { 'B','C','J' };int change(char c) { if (c == 'B') return 0; if (c == 'C') return 1; if (c == 'J') return 2;}int main() { char x1, x2; int n; int m1, m2; cin >> n; int times_A[3...原创 2022-02-28 16:20:55 · 113 阅读 · 0 评论 -
【2019工研/模拟】服务器维护(水题)
题目:假设有编号从 1-N 的服务器,首先给出服务器个数,再给出一组服务器状态。然后给出一次数字,表示修改状态次数,接下来输入为 i,j,x,意思是使用 x 修改从 i 到 j 的服务器。最后输出所有服务器状态例:输入:51 2 2 3 121 2 52 5 -1输出:6 6 1 2 0题意:输入一个数n,随后输入n个数,代表n个状态输入一个m随后m次操作每次输入3个数字i,j,x;将编号i-j的数加上x利用数组存储数字,for循环实现操作代码:#incl.原创 2022-02-28 13:51:29 · 110 阅读 · 0 评论 -
【A1046/模拟】圆上的点求最短距离(巧用数组)
思路:注意数组一定要初始化(为0),否则会随机初始化成一个非常大的数#include<iostream>#include<algorithm>using namespace std;const int maxn = 11000;int main() { int A[maxn] = { 0 }, n, m, sum = 0, dis[maxn] = {0}, s, e; cin >> n; for (int i = 1; i <= n; i++..原创 2022-02-28 19:59:40 · 210 阅读 · 0 评论 -
【A1042/模拟】洗牌(巧用数组)
思路:1、 数组名字不要和关键字重复,一定记得初始化2、start[i]-1的原因:考虑s[i]=13,那么花色就是13/13=1,对应为H,编号为13%13=0;实际应该是S13代码:#include<iostream>using namespace std;const int N = 54;int start[N + 1] = { 0 }, endd[N + 1] = { 0 }, nextt[N + 1] = { 0 };char mp[5] = { 'S...原创 2022-02-28 21:19:09 · 93 阅读 · 0 评论 -
【A1065/模拟】判断A+B与C的大小(数的范围)
1、题目:给定三个整数A,B,C,范围在[-2^63,2^63],判断A+B是否大于C2、思路:两个long long的整数相加会发生溢出,故应进行溢出判断3、代码:#include<iostream>using namespace std;int main() { int n,cnt=1; bool flag; long long a, b, c,res; cin >> n; for (int i = 0; i < n; i++).原创 2022-03-01 09:34:50 · 187 阅读 · 0 评论 -
【A1002/模拟】多项式求和(巧用数组)
思路:设置一个数组,数组下标为幂次,数组内容为系数代码:#include<iostream>#include<algorithm>using namespace std;const int maxn = 10010;int main() { int k1,k2,e1,e2; double x1, x2; double p[maxn] = { 0 }; cin >> k1; for (int i = 0; i < k1; i++) {.原创 2022-03-01 11:31:49 · 122 阅读 · 0 评论 -
【A1009/模拟】多项式乘积(结构体数组)
题目:给出一个多项式,求这两个多项式的乘积代码:#include<iostream>#include<algorithm>using namespace std;const int maxn = 10010;struct poly { int e; double x;}poly[maxn];int main() { int n, m; double ans[maxn] = {0}; cin >> n; for (int i = .原创 2022-03-01 12:43:25 · 75 阅读 · 0 评论 -
【B1041/模拟】查询座位号(水题)
思路:考试座位号要用long long来存储,超过10^10就不能用int了#include<iostream>using namespace std;const int maxn = 1100;struct stu { long long num1; int num2;}stu[maxn];int main() { int n,m,x,b,c; long long a; cin >> n; for (int i = 0; i < n; i+..原创 2022-03-01 14:10:21 · 90 阅读 · 0 评论 -
【A1011/模拟】(水题)
#include<iostream>#include<cstdio>using namespace std;char mp[3] = { 'W','T','L' };int main() { double x,ans=1; for (int i = 0; i < 3; i++) { double maxw = -1; int index = -1; for (int j = 0; j < 3; j++) { cin >>...原创 2022-03-01 19:03:38 · 93 阅读 · 0 评论 -
【B1028/模拟】人口普查(日期比较)
注意:C语言的字符串是字符数组,数组不能用另一个数组赋值,故对于char数组必须用strcpy,c++的string类型可以直接赋值#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main() { char name[5],max_name[5],min_name[5]; int year, month, day; int n,cnt=0; i...原创 2022-03-01 19:26:31 · 87 阅读 · 0 评论 -
【A1006/模拟】时间差值
此题做法和人口普查一样#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main() { char name[16],max_name[16],min_name[16]; int hour, minute, second; int n; int maxtime = 246060, mintime = 000000; cin >> n...原创 2022-03-01 19:56:01 · 99 阅读 · 0 评论 -
【A1036/模拟】结构体内容的比较(水题)
#include<iostream>using namespace std;struct stu { char name[10], gender,course[10]; int score;}stu,maxd,mind;int main() { int n,maxw=-1,minw=999999999; bool flag1, flag2; cin >> n; for (int i = 0; i < n; i++) { scanf_s("%s...原创 2022-03-01 21:49:10 · 187 阅读 · 0 评论 -
【B1036/模拟】跟奥巴马一起编程(图形输出)(水题)
思路:代码:#include<iostream>using namespace std;int main() { int n,col; char c; cin >> n>>c; if (n % 2 == 0) col = n / 2; else col = n / 2 + 1; for (int i = 0; i < col; i++) { if (i == 0 || i == col - 1) { for (int j = ..原创 2022-03-01 22:46:12 · 145 阅读 · 0 评论 -
【B1027/模拟】打印沙漏(图形输出)
思路:1、先计算打印出上三角所需的行数k:由k可以推出沙漏字符总数为{[(1+2k-1)*k]/2}*2-1=2*k*k-12、打印上三角:由行数i可以推出每行空格数为i(从0开始),字符数2*(k-i)-13、打印下三角:每行空格数=(最后一行字符数-当前行字符数)/2,即[(2*k-1)-(2*i+1)]/2=k-i-1;每行字符数=2*i+1代码:#include<iostream>using namespace std;int main() { int..原创 2022-03-02 12:11:08 · 667 阅读 · 0 评论 -
【A1031/模拟】字符串U形输出(图形输出)
#include<iostream>#include<cstring>using namespace std;int main() { char str[100]; gets_s(str); int n = strlen(str); int N = n + 2; int n1 = N / 3; int n2 = N - 2 * n1; for (int i = 0; i < n1; i++) { if (i != n1 - 1) { for ...原创 2022-03-02 14:16:39 · 295 阅读 · 0 评论 -
【B1022/模拟】D进制的A+B(进制转换)
这道题做法和#include<iostream>#include<cmath>using namespace std;int main() { int a, b, c, d, ans = 0, res[110] = { 0 }; cin >> a >> b>>d; c = a + b; while (c != 0) { int db = c % d; c /= d; ans = ans * 10 + db; ...原创 2022-03-02 17:25:03 · 185 阅读 · 0 评论 -
【B1037/模拟】在霍格沃茨找零钱(进制转换)(水题)
错误点: 输出中间位置应该是temp %(17*29)/ 29而不是temp / 29#include<iostream>#include<cstdio>using namespace std;int main() { int a1, b1, c1, a2, b2, c2; bool flag = false; scanf("%d.%d.%d", &a1, &b1, &c1); scanf("%d.%d.%d", &a2, &a..原创 2022-03-02 18:18:53 · 95 阅读 · 0 评论 -
【A1019/模拟】进制转换后判断是否回文(进制转换)(水题)
#include<iostream>#include<cmath>using namespace std;int main() { int a, b, res[110] = { 0 }; bool flag = false; cin >> a >> b; int i = 0; while (a != 0) { int db = a % b; a /= b; res[i++] = db; } for (int j = i -...原创 2022-03-02 18:49:17 · 80 阅读 · 0 评论 -
【A1027/模拟】10进制转13进制(进制转换)
题目:将10进制转为13进制,其中13进制为0~9,A~C;,输出第一个字符为#代码:#include<iostream>using namespace std;int main() { char mp[13] = { '0','1','2','3','4','5','6','7','8','9','A','B','C' }; int temp; for (int i = 0; i < 3; i++) { cin >> temp; if (i ==原创 2022-03-02 20:00:26 · 580 阅读 · 0 评论