comet oj #7
A 签到题
题目描述
多次询问,每次询问给一个值域范围 [l,r][l,r],要回答下列四个问题:
从这个范围内选出两个整数(两个数可相同),
(1) 这两个数的最小公倍数最大是多少?
(2) 这两个数的最小公倍数最小是多少?
(3) 这两个数的最大公约数最大是多少?
(4) 这两个数的最大公约数最小是多少?
输入描述
第一行一个数 tt 表示数据组数 (t = 10^4t=104)。
之后 tt 行,每行两个数 l, rl,r 表示一次询问(1 \le l \le r \le 10^91≤l≤r≤109)。
输出描述
对于每个询问,输出一行四个数依次表示这四个问题的答案。(四个数间恰以一个空白字符隔开,每行行末不能有多余的空白字符。)
样例输入 1
2
2 3
1 2
样例输出 1
6 2 3 1
2 1 2 1
提示
对于值域范围 [2,3][2,3]:
lcm( 2 , 3 ) = 6lcm(2,3)=6 是最大的最小公倍数
lcm( 2 , 2 ) = 2lcm(2,2)=2 是最小的最小公倍数
gcd( 3 , 3 ) = 3gcd(3,3)=3 是最大的最大公约数
gcd( 2 , 3 ) = 1gcd(2,3)=1 是最小的最大公约数
对于值域范围 [1,2][1,2]:
lcm( 1 , 2 ) = 2lcm(1,2)=2 是最大的最小公倍数
lcm( 1 , 1 ) = 1lcm(1,1)=1 是最小的最小公倍数
gcd( 2 , 2 ) = 2gcd(2,2)=2 是最大的最大公约数
gcd( 1 , 2 ) = 1gcd(1,2)=1 是最小的最大公约数
#include <iostream>
#define LL long long
using namespace std;
int main()
{
int n;
scanf("%d",&n);
LL l,r;
while(n--)
{
cin>>l>>r;
if(l==r){
cout<<l;
printf(" ");
cout<<l;
printf(" ");
cout<<l;
printf(" ");
cout<<l;
}
else for(int i=;i<;i++)
{
if(i!=)printf(" ");
if(i==)cout<<r*(r-);
if(i==)cout<<l;
if(i==)cout<<r;
if(i==)printf("");
}
printf("\n");
}
return ;
}
B 麻将题
面麻的时候经常大家已经坐好了,然后抽了每个人对应的自风(也就是坐的位置),每次可以交换相邻的两个人,问让这四个人逆时针顺序依次为 东 南 西 北 最少需要交换几次。
简洁题意:可以理解为有一个长度为 44 的环,上面的元素构成一个长度为 44 的排列,每次可以交换环上相邻两个位置,问至少交换多少次,使得这个环中值为 11 的位置逆时针方向的下一个位置是值为 22 的位置,再下一个位置是值为 33 的位置,再下一个位置是值为 44 的位置(也可能不用交换就满足条件,此时答案就是 00)。
(简洁题意中,可想像成数字 1,2,3,41,2,3,4 是对应到东南西北)
输入描述
一行四个数,代表逆时针顺序给出环上的元素,保证是一个 1 \sim 41∼4 的排列。
输出描述
输出一行一个数表示最小交换次数。
样例输入 1
3 1 2 4
样例输出 1
1
提示
样例解释:交换第一个数和第四个数之后顺序就是 4,1,2,34,1,2,3 了,满足题目要求顺序(11 的逆时钟方向下个数是 22,再下个数是 33,再下个数是 44)。
思路:总共就4!种排列方式,很容易知道交换几次可以使之按顺序排列。暴力破解。代码如下:
#include <stdio.h>
int main()
{
int a,b,c,d;
scanf("%d %d %d %d",&a,&b,&c,&d);
int e=,f=,g=;
if(a==&&b==&&c==&&d==)printf("%d\n",e);
else if(a==&&b==&&c==&&d==)printf("%d\n",e);
else if(a==&&b==&&c==&&d==)printf("%d\n",e);
else if(a==&&b==&&c==&&d==)printf("%d\n",e);
else if(a==&&b==&&c==&&d==)printf("%d\n",g);
else if(a==&&b==&&c==&&d==)printf("%d\n",g);
else if(a==&&b==&&c==&&d==)printf("%d\n",g);
else if(a==&&b==&&c==&&d==)printf("%d\n",g);
else printf("%d\n",f);
return ;
}
最新文章
- vim简单使用
- 27. Oracle 10g下emctl start dbconsole 报错:OC4J Configuration issue 问题解决
- 4.0 和4.5 app 和generic,xaml的问题
- ccs6.0使用问题记录
- HttpClient和WebService的区别和介绍
- 【转】RESTful Web Services初探
- Linux 命令 - passwd: 更改用户密码
- Ext Grid 加载超时设置timeout: 180000
- Nginx禁止通过IP,未绑定域名访问服务器
- 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)
- 【具体数学 读书笔记】1.2 Lines in the Plane
- ZOJ 3939The Lucky Week<;模拟/暴力>;
- poj2502最短路!
- 产品经理学Python:逻辑判断与运算符
- Docker Ubuntu中安装ping ifconfig命令
- STM32L476应用开发之六:电池SOC检测
- Android 开发常用版本控制命令
- C#常用单元测试框架比较:XUnit、NUnit和Visual Studio(MSTest)
- install apache-activemq
- properties文件读取