#include<iostream> using namespace std; int main(){ int a[100001], m[100000]; int n; scanf("%d", &n); for(int i = 0; i < n; i++) { scanf("%d", &a[i]); m[a[i]]++; } for(int i = 0;
A 首先把原数组中的数按题目要求进行转化 状态表示\(f[i][j]\)表示从前\(i\)个选,凑成的数组为\(j\)的所有方案数 #include <bits/stdc++.h> #define int long long using namespace std; const int N = 1e5 + 10, MOD = 998244353; int n; int a[N], f[N][10]; signed main() {
897. 最长公共子序列 给定两个长度分别为 N 和 M 的字符串 A 和 B,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M。 第二行包含一个长度为 N 的字符串,表示字符串 A。 第三行包含一个长度为 M 的字符串,表示字符串 B。 字符串
A #include <bits/stdc++.h> using namespace std; int main() { puts("All in!"); return 0; } B #include <bits/stdc++.h> using namespace std; int T, n, m, k; int main() { scanf("%d", &T); while (T -- ) {
1:基础知识 gets(ch);//用于输入带有空格的字符串 scanf("%s",ch);//仅可接受不带空格字符串的 2:代码 #include<stdio.h> #include<string.h> #define MAX 1000 int main(void) { int n,count=0; char ch[MAX]; scanf("%d",&n);//当你输入一个数字并按下回车时,下面getchar()
#include<stdio.h> #include<math.h> #include<string> int main() { //案例五 printf("请输入二个整数:\n"); int m, n, count = 0; scanf_s("%d%d", &m, &n); while (m <= n) { if (m % 2 != 0)
RMQ(区间最值查询),可以用线段树和ST表解决 线段树 预处理 O (nlogn) 查询 O (logn) 支持在线修改 ST表 预处理 O (nlogn) 查询O(1) 不支持在线修改 1.区间最值差—可用线段树,但ST更短 #include <iostream> #include <cmath> #include <stdio.h> using namespace std; cons
#include<stdio.h> int main(void) { int c,d,n,a,b[10000]; scanf("%d",&n); for(a=0;a<n;a++) { scanf("%d",&b[a]); } for(d=0;d<n;d++) { for(a=0;a<(n-1);a++)----------------
不可读入空格 char a[300]; scanf("%s",a);// 不能输入空格,即到输入到空格即止 可以读入空格 char a; scanf("%c", a) //可以输入空格,和换行,注意不读入换行和空格时要用getchar()吸收 char a[300]; gets(temp); //可以输入空格,到换行即止
集成开发环境(IDE,Integrated Development Environment ) GNU编译器(GNU compiler) 标识符(identifier) 格式化(format):scanf printf (formattend格式化了的) C语言scanf函数用法完全攻略 %d整型输出:C语言-格式输入输出中“%d,%o,%x,%e,%f”等的含义
原题链接 思路:求商用 / 求余数用 % #include <stdio.h> int main() { int a = 0; int b = 0; scanf("%d %d", &a, &b); int m = a / b; int n = a % b; printf("%d %d", m, n); return 0; }
给定 n 个区间 [li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含两个整数 l 和 r。 输出格式 共一行,包含一个整数,表示合并区间
c--Computer Game #include <stdio.h> int main(){ int a, b, i, j; char x[101], y[101]; scanf("%d", &a); for (i = 0; i < a; i++){ scanf("%d", &b); getchar(); scanf("%s",
C语言程序 #include <stdio.h> int main() { int price;//=0是赋初值的意思 printf("请输入金额(元):"); scanf("%d",&price);//&意思是取出该地址的值,scanf后加,但字符串的scanf也无&号 //scanf是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中 in
目录 1. 数据的格式化屏幕输出 1.1 格式化屏幕输出 1.2 格式化键盘输入 2. 单个字符的输入和输出 2.1 用getchar()从键盘输入单个字符 2.2 用scanf的%c格式符输入数据 2.3 用putchar()向屏幕输出单个字符 3. 本章小节 1. 数据的格式化屏幕输出 解决的问题 C 语言如
Description 给定一个由 n 个整数组成的序列A1,A2,……, An 和两个整数L,R,你的任务是写一个程序来计算序列号在[L,R](这是一个闭区间) 这段位置区间内所有数的总和。 Input 输入只有一组测试数据: 测试数据的第一行为一个整数 n (1< n < 10000); 第二行为 n 个 int 类型的整数; 第三行
A 双指针 #include <bits/stdc++.h> #define PII pair<int, int> using namespace std; const int N = 2e5 + 10; int T, n, d; int a[N]; int main() { scanf("%d", &T); while (T -- ) { scanf("%d", &n); d
从低位到高位 #include<stdio.h> int main() { int n,a; scanf("%d",&n); while(n) { a=n%10; printf("%d\n",a); n/=10; } return 0; } 用for循环需判断该数有几位,while循环不用 从高位到低位 第一种用到递归 #include<stdio.h> void printdigits(int n); i
#include <stdio.h> #include <stdlib.h> int main() { int n, i, sum = 0; scanf("%d", &n); int *p = malloc(n * sizeof(int)); if(p != NULL) { for(i = 0; i < n; i++) { scanf("%d&
如题,朋友领导的孩子大学作业是个C语言编写的管理信息系统发来要我给改改,原代码的配置环境是Windows的C环境,由于10多年没有搞过Windows下的C语言了于是换上了Ubuntu18.04的系统上,本以为都是C语言的标准函数在哪个系统上区别不大,不过正是这个想法要自己调到了坑里,其中最大的一个坑就
目录 一、基础知识掌握1、运算符的优先级二、if语句1、if(条件)2、if-else语句3、多路分支Switch-case语句 三、while循环1、do-while 一、基础知识掌握 1、运算符的优先级 例如:求平均数 #include <stdio.h> int main() { int a,b; scanf("%d %d",&a,&b); double c=(
2022.1.20解题报告 1.三元一次方程 题目描述: https://www.acwing.com/problem/content/description/3629/ 思路: 直接两层循环,暴力枚举x和y即可。 代码: #include<iostream> using namespace std; int t,n; int main(){ scanf("%d",&t); while(t -- ){ scanf("
分析: 堆排序模板 s t l C o d e
《明解C语言》第一章总结与感悟 //表现出显示与输出,并且使用乘法 #include <stdio.h> int main() { int height, width; puts("输出长方形的面积"); scanf("%d", &height); printf("长为:%d\n", height); scanf("%d", &width); printf("宽为:&a
#include<stdio.h>/*基本输入输出题(一)题目描述;计算a+b输入包括两个正整数a,b(1<a,b<=10^9),输入数据包括多组。输出a+b的结果输入1 510 20输出630 */int main(){ int a,b; while(scanf("%d%d",&a,&b)){ printf("%d\n",a+b); } return 0;} #include<stdio.h>/*基本输