7日共14题,因为3.14两题相同,所以实际总共13题

13道题分为难易两部分,没有按照时间顺序排列题目

A.易:

1.覆盖数字的数量

题意:

给出一段从A - B的区间S(A,B为整数)

这段区间内的整数可以随便使用任意次

再给出一段从X - Y的区间T

问用区间S中的整数做加法

可以覆盖区间T中多少个不同的整数

1<= A, B, X, Y <= 1e18

解法:

没有什么想法,我们观察样例

A = 8 B = 10 X = 3 Y = 20

由区间S凑成的整数为

8 9 10

16 17 18 19 20

我们继续列举发现继续凑成的整数为

24 25 26 27 28 29 30

32 33 34 35 36 37 38 39 40

可以发现会凑成许多段连续区间

每段区间的长度呈等差数列

并且如果A != B无限枚举下去最后一定会存在N

当Z >= N时,是一定可以凑出Z的

样例中的 N 即为40

我们继续思考可以发现 N 是满足下面条件的最小的数

N / A = N / B + 1

反映到上面列举的区间,即第4段中的40同时出现在了第5段中

那么必然有第5段中的某个数Z也出现在了第6段中 ......

所以后面所有Z >= 40都是能够被凑出来的

于是直接二分找出N,再算一下等差数列求和即可

 #include <cstdio>

 typedef long long ll;

 int Case;

 ll l, r, a, b, d, ans;

 ll max(ll x, ll y) {
return x > y ? x : y;
} ll calc(ll x) {
ll L = , R = 1e18, mid, N, res = ;
while(L <= R) {
mid = (L + R) >> ;
if(mid / a > mid / b) N = mid, R = mid - ;
else L = mid + ;
}
if(x >= N) res += x - N, x = N;
res += ((x / b + ) * d + ) * (x / b) / + max(0ll, x - (x / b + ) * a);
return res;
} int main() {
scanf("%d", &Case);
while(Case --) {
scanf("%lld %lld %lld %lld", &a, &b, &l, &r);
d = b - a, printf("%lld\n", calc(r) - calc(l - ));
}
return ;
}

2.Lucky Permutation Triple

题意:

0到(n-1)这n个数进行全排列

请找出三个全排列a、b、c

使得“a与b的对应元素的和”与“c的对应元素”对模n同余

无解输出-1

解法:

纯靠手感or脑洞

若n为奇数,则2, 4, 6, ..., 2n

在膜n意义下为2, 4, ..., n - 1, 1, 3, ... n - 2, 0

这样就直接凑出了0 - (n - 1)

若n为偶数,注意到题意

设Sa, Sb, Sc为abc三个排列的元素之和

此时应满足 (Sa + Sb) % n  = Sc % n

然而Sa = Sb = Sc = (n - 1) * n / 2

此时等式左侧为0, 右侧要想为0, 必须使n - 1为偶数

因为n为偶,所以n - 1为奇数,右侧不可能为0

所以此时无解输出 -1

 #include <cstdio>

 int n;

 int main() {
scanf("%d", &n);
if(n & ) {
for(int i = ;i < n;i ++)
printf("%d ", i);
printf("\n");
for(int i = ;i < n;i ++)
printf("%d ", i);
printf("\n");
for(int i = ;i < n;i ++)
printf("%d ", * i % n);
}
else puts("-1");
return ;
}

everyday two problems / 3.11 - 3.17的更多相关文章

  1. 2016年11月17日 星期四 --出埃及记 Exodus 20:8

    2016年11月17日 星期四 --出埃及记 Exodus 20:8 "Remember the Sabbath day by keeping it holy.当记念安息日,守为圣日.

  2. 2014年11月17~11月18日,杨学明老师《企业IT需求收集和实施》内训在湖南长沙某酒店成功举办!

    2014年11月17至18日,受湖南某软件企业的邀请,杨学明老师<企业IT需求收集和实施>内训在某长沙某五星级酒店成功举办!来自全国各地的IT高管和企业负责人参加了此次培训.杨学明老师分别 ...

  3. 基数排序的可复用实现(C++11/14/17/20)

    基数排序,是对整数类型的一种排序方法,有MSD (most significant digit)和LSD (least significant digit)两种.MSD将每个数按照高位分为若干个桶(按 ...

  4. PSP(5.11——5.17)以及周记录

    1.PSP 5.11 14:30 20:00 130 200 Cordova A Y min 5.12 9:00 14:00 100 200 Cordova A Y min 5.13 13:30 15 ...

  5. 云计算之路-阿里云上:2014年6月11日17点遇到的CPU 100%状况

    今天下午17:00-17:05之间,在请求量没有明显变化的情况下,SLB中的1台云服务器的CPU突然串到100%(当时SLB中一共有3台云服务器),见下图: 造成的直接后果是请求执行时间变得超长,最长 ...

  6. Support For C++11/14/17 Features (Modern C++)

    Visual Studio编译器对 C++11 特性的支持 具体参考网址:https://msdn.microsoft.com/en-us/library/hh567368.aspx 截至目前为止,V ...

  7. 2016年11月17日--SQL主、外键,子查询

    主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...

  8. 2014年11月17号------html起始

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 2017年5月11日17:43:06 rabbitmq 消费者队列

    从昨天开始发现个问题,一个接口在本地调用时大部分正常,一旦在生成者打一个断点调试,并且在promotion也打断点的时候会出现没有返回channel的异常,然后消费者就再也消费不了了 16:57:45 ...

随机推荐

  1. iOS界面之间的跳转方式

    iOS界面之间的跳转方式基本有3种. .改变window的根视图 [self.window setRootViewController:VC]; .模态弹出 [self presentViewCont ...

  2. 选择排序(1)——简单选择排序(selection sort)

    选择排序是一种很常见的排序算法,它需要对数组 中的元素进行多次遍历.每经过一次循环,选择最小的元素并把它放在靠近数组前端的位置. 代码实现: public static void selectionS ...

  3. Gift

    [问题描述] 人生赢家老王在网上认识了一个妹纸,然后妹纸的生日到了,为了表示自己的心 意,他决定送她礼物.可是她喜爱的东西特别多,然而他的钱数有限,因此他想 知道当他花一定钱数后剩余钱数无法再购买任何 ...

  4. codeforces round #416 div2

    A:暴力模拟 #include<bits/stdc++.h> using namespace std; int a, b; int main() { scanf("%d%d&qu ...

  5. Spark SQL中 RDD 转换到 DataFrame (方法二)

    强调它与方法一的区别:当DataFrame的数据结构不能够被提前定义.例如:(1)记录结构已经被编码成字符串 (2) 结构在文本文件中,可能需要为不同场景分别设计属性等以上情况出现适用于以下方法.1. ...

  6. astgo常见问题(FAQ)知识库

    Q:为什么我在astgo 的一些列表页面看不到右侧顶端的高级功能菜单?R:因为你没有先选择代理商,这些操作都是针对于某个代理商才可以操作的! Q:为什么我无法给astgo 的代理商充值?R:因为你登录 ...

  7. putty+Xmanager登陆Linux,实现图形界面操作.

  8. 客户端JavaScript Ajax

    创建: 2017/10/21 完成: 2017/10/23   [TODO] 对Ajax收发各类型数据制作模板 补充跨域通信(cross origin) p457  HTTP通信  HTTP  超文本 ...

  9. java—容器学习笔记

    一:迭代器 刚开始学容器,做了个简单的练习题.. import java.util.ArrayList; import java.util.Collection; import java.util.I ...

  10. js mvc框架

    介绍 使用过 JavaScript框架(如 AngularJS, Backbone 或者Ember)的人都很熟悉在UI(用户界面,前端)中mvc的工作机理.这些框架实现了MVC,使得在一个单页面中实现 ...