关于scanf函数的: 如scanf(%d%d,&a,&b);语句中当我们敲a时紧接着敲b时会敲不出,但在ab中敲空格便可以,当有多个元素输入但每个连着的,中间要穿插空格,但有其他形式要原样输出。 如果用scanf_s输入字符的话,要提供一个数字以表明读取多少字符 scanf(’’%s’’,word,10)
求最大公因数三种方法 两个数m,n(默认m最大,m>n) 相减法 如果m > n,m = m - n;如果m < n,n = n - m;如果m == n,输出 m 或者 n,即为最大公因数m != n则循环上述操作 #include <stdio.h> int main(){ int m,n; scanf("%d%d",&m,&n); printf("The maxFactorNum of %d a
#include <stdio.h> int is(int n); int main() { int a,b; scanf("%d%d",&a,&b); while(a<b) { if(is(a)1) {printf(" %d",a);} a++; } } int is(int n) { int a,b,i,sum=0; a=b; while(a!=0) { i=a%10; sum=sum+iii; a=a/10; } if(
#include <stdio.h> #include <stdlib.h> int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); int max=0; if (a>b){ if(a>c){ max=a; }else{ max=c; } }else
Problem Description w学长是数学奇才,他轻轻松松就学会了高数,但是他却忘记了基础数学。 已知两个分数a/b,c/d;请问两个分数的和是什么。 w学长不会,你能告诉他吗?答案保留最简分数形式。 Input 多组输入,处理到文件结尾,每行四个整数a,b,c,d(0<a,b,c,d<1e9),表示两个分数a/b,c/d。 Output
题目描述 题解 如果说这 $k$ 个的和超过照相机的时间 $s$ ,那至少有一个值 $\ge s/k$ ,其中 $s/k$ 取上整。 所以对每个星星维护一个堆,按照 $s/k$ 从小到大排序,每次取出看是否符合条件即可。 每次取出, $s$ 至多变为 $2/3\times s$ ,所以效率为 $O(m \log_2 m \log_{2/3}s)$ 。 代码
思路:要求何寻找一个最短的 t,使得 t 不是 s(l,r) 的子序列,假设现在位于x,那么下一步有m个选择,我们要使得子序列尽可能的小,所以就要选择离x最远的那个字母,直到走出r为止。于是问题转化为:从 l 开始沿着 _next 一路往右跳,要跳多少步才能跳到 > r 的地方。求区间最值问题,使用st表,我
文章目录 AcWing 786 第k个数AcWing 788. 逆序对的数量AcWing 790. 数的三次方根AcWing 795. 前缀和AcWing 796. 子矩阵的和AcWing 797. 差分AcWing 798. 差分矩阵 AcWing 786 第k个数 1.对整个数组使用快速排序,然后直接输出从小到大排序后的第 k 个数。时间复杂度为O
题目描述: 输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位,a,b<=10^6,c<=100 输入包含多组数据,结束标志为a=0,b=0,c=0; Input: 1 6 4 0 0 0 Output: Case1: 0.1667 程序: #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typ
.编写程序判断n是正数还是负数。 #include<stdio.h> main() { int n; printf("s输入一个整数:\n"); scanf("%d",&n); if(n>0) printf("%d是正数!\n",n);
#include <iostream>#include <stdio.h>using namespace std;typedef unsigned long long ULL;const int N=100010,P=131;int n,m;char str[N];ULL h[N],p[N];ULL get(int l,int r){ return h[r]-h[l-1]*p[r-l+1];}int main(){ scanf("%d%d%s",&n,&
#include <stdio.h> int main() { int a,b,c; //定义变量 scanf("%d%d%d",&a,&b,&c); //输入数字 if (a>b&&b>c) //条
本题要求将输入的任意3个整数从小到大输出。 输入格式: 输入在一行中给出3个整数,其间以空格分隔。 输出格式: 在一行中将3个整数从小到大输出,其间以“->”相连。 输入样例: 4 2 8 结尾无空行 输出样例: 2->4->8 结尾无空行 主要思路: 将a,b,c两两比较,将较大的数储存在a中,然后将b,
目录 最短路 朴素Dijkstra 最小生成树 Prim 算法 Kruskal 算法 最短路 朴素Dijkstra 时间复杂度: O(n2+m) , n 表示点数,m 表示边数 稠密图
城市路 注意: 两个城市之间可能有多条路。 #include<iostream> #include<cstring> #include<cmath> #define inf 0x3f3f3f3f using namespace std; const int N=2005; int mapp[N][N],dis[N]; bool vis[N]; int main(){ int n,m; cin>>n>>m; mems
模板题:https://www.acwing.com/problem/content/843/ 字符串前缀哈希法,把字符串变成一个p进制数字(哈希值),实现不同的字符串映射到不同的数字。 对形如 X 1
【题意】 题目链接 【分析】 很显然,如果我们能够求出f[0...N]和g[0...N]分别表示国内/外有i个停机坪时,最多的停靠飞机数量,那么max{f[i]+g[n-i]}就是答案 现在考虑如何取求f和g 我们考虑每次贪心的把新的一架飞机停在编号尽可能小的停机坪上,这样我们从前到后走一遍,借助优先级队列即
#include<stdio.h> int main() { int a,b,c,d,e,f,g,x,z; scanf("%d",&x); if((x<0)||x>1000000) return 0; a=x/1000000%10; b=x/100000%10; c=x/10000%10; d=x/1000%10; e=x/100%10; f=x/10%10; g=x%10; if(a%2=
请注意,本文的分数均指洛谷的民间数据测评分数,非官方,等到官方数据下发将会再次测评 T1:分糖果 本题题目很难读,其实就是给出N,L,R,在L到R的区间中找一个数,使其对N取模的值最大 其实可以O(1)的,但我偏要写循环 但是,请注意正序的话会超时,倒序效率很高 因为答案最大肯定是N-1,所
文章目录 CANDYSORTNETWORKFRUIT CANDY 普及- 难度。。。 数论推一下即可。。。 代码: #include<bits/stdc++.h> using namespace std; int main(){ //freopen("candy.in","r",stdin); //freopen("candy.out","w",stdout); int n,l,r; scanf(&qu
题目背景 原来的题目太简单,现改进让小鱼周末也休息,请已经做过重做该题。 题目描述 有一只小鱼,它平日每天游泳 250 公里,周末休息(实行双休日),假设从周 x(1\le x \le 7)x(1≤x≤7) 开始算起,过了 n(n\le 10^6)n(n≤106) 天以后,小鱼一共累计游泳了多少公里呢? 输入格式 输入两个
7-1 成绩统计表 (10 分) 改正后的正确答案 #include <stdio.h> int main() { int a,b,c,d,e; scanf("%d%d%d%d%d",&a,&b,&c,&d,&e); printf("Rank Number\n"); printf("----------------\n"); printf
探究两数交换的几种常用方法 使用中间值传递 方法一:使用中间值保存。 public static void temp(){ int x = 10; int y = 20; System.out.format("交换两数之前:x:%d,y:%d%n",x,y); //定义中间值 int temp; //实现交换
参考代码-C语言 #include<stdio.h> int ans[10001]; int main() { int n,i,y1,y2; int a,b; float x,y;//注意精度问题 scanf ("%d%d%d",&n,&a,&b); x=1.0*b/a; for (i=1; i<n; i++) { scanf("%d%d",&am
由两个坐标(x1,x2).(x3,x4),求两个端点距离 提示:x1,x2,x3,x4均为整数,且输出结果保留三位小数。 #include<stdio.h> #include<math.h> int main() { int a,b,c,d; float distance; scanf("%d%d%d%d",&a,&b,&c,&d); distance=sqrt((c-a)*(c-a)+(d-b)*(d-b)); prin