A - Maximal Intersection CodeForces - 1029C


题目大意:就是给你n个区间,这n个区间有公共的区间长度为x,现在叫你从这n个区间中删掉一个使得x最大化。


解题思路:1.所有线段的公共交点就是这些线段里左端的最大值和右端点的最小值构成的区间长度
2.所以我们只要枚举删除每一个线段就可以了

#include <iostream>
#include <cstdio>
#include <stack>
#include <sstream>
#include <vector>
#include <map>
#include <cstring>
#include <deque>
#include <cmath>
#include <iomanip>
#include <queue>
#include <algorithm>
#include <set>
#define mid ((l + r) >> 1)
#define Lson rt << 1, l , mid
#define Rson rt << 1|1, mid + 1, r
#define ms(a,al) memset(a,al,sizeof(a))
#define sfx(x) scanf("%lf",&x)
#define sfxy(x,y) scanf("%lf%lf",&x,&y)
#define sdx(x) scanf("%d",&x)
#define sdxy(x,y) scanf("%d%d",&x,&y)
#define pfx(x) printf("%.0f\n",x)
#define pfxy(x,y) printf("%.6f %.6f\n",x,y)
#define pdx(x) printf("%d\n",x)
#define pdxy(x,y) printf("%d %d\n",x,y)
#define _for(i,a,b) for( int i = (a); i < (b); ++i)
#define _rep(i,a,b) for( int i = (a); i <= (b); ++i)
#define for_(i,a,b) for( int i = (a); i >= (b); -- i)
#define rep_(i,a,b) for( int i = (a); i > (b); -- i)
#define lowbit(x) ((-x) & x)
#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define INF 0x3f3f3f3f
#define hash Hash
#define next Next
#define f first
#define s second
using namespace std;
const int N = 3e5 + 10, eps = 1e-10;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair <int,int> PII;PII p[N];
int x[N], y[N];
int main()
{int  T;cin >> T;_for(i,0,T) {int l ,r;cin >> l >> r;p[i] = {l,r};x[i] = l, y[i] = r;}sort(x,x+T);sort(y,y+T);int res = 0;_for(i,0,T){int l, r;if(p[i].f != x[T - 1]) l = x[T - 1];else l = x[T - 2];if(p[i].s != y[0]) r = y[0];else r = y[1];res = max(res,r - l);}cout << res << endl;return 0;
}

B - Nastya and a Wardrobe CodeForces - 992C


题目大意:
你开始有X个裙子 你有K+1次增长机会 前K次会100%的增长一倍 但是增长后有50%的机会会减少一个
给你X,K(0<=X,K<=1e18), 问你最后裙子数量的期望值是多少(答案 mod 1e9+7)


解题思路:推公式其实公式很好推的,按照题目意思模拟一下就可一了ans=2k+1∗x−2k+1ans = 2^{k+1}*x-2^k+1ans=2k+1∗x−2k+1

#include <iostream>
#include <cstdio>
#include <stack>
#include <sstream>
#include <vector>
#include <map>
#include <cstring>
#include <deque>
#include <cmath>
#include <iomanip>
#include <queue>
#include <algorithm>
#include <set>
#define mid ((l + r) >> 1)
#define Lson rt << 1, l , mid
#define Rson rt << 1|1, mid + 1, r
#define ms(a,al) memset(a,al,sizeof(a))
#define sfx(x) scanf("%lf",&x)
#define sfxy(x,y) scanf("%lf%lf",&x,&y)
#define sdx(x) scanf("%d",&x)
#define sdxy(x,y) scanf("%d%d",&x,&y)
#define pfx(x) printf("%.0f\n",x)
#define pfxy(x,y) printf("%.6f %.6f\n",x,y)
#define pdx(x) printf("%d\n",x)
#define pdxy(x,y) printf("%d %d\n",x,y)
#define _for(i,a,b) for( int i = (a); i < (b); ++i)
#define _rep(i,a,b) for( int i = (a); i <= (b); ++i)
#define for_(i,a,b) for( int i = (a); i >= (b); -- i)
#define rep_(i,a,b) for( int i = (a); i > (b); -- i)
#define lowbit(x) ((-x) & x)
#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define INF 0x3f3f3f3f
#define hash Hash
#define next Next
#define f first
#define s second
using namespace std;
const int N = 3e5 + 10, mod = 1e9 + 7;
const double eps = 1e-10;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair <int,int> PII;LL x, k;
LL qmi(LL a, LL b)
{LL res = 1;while(b){if(b & 1) res = (res * a) % mod;b >>= 1;a = a * a % mod;}return res % mod;
}int main()
{cin >> x >> k;if(k == 0) cout << (x * 2) % mod << endl;else if(x == 0) cout << "0" << endl;else{LL ans = ((qmi(2,k+1) * (x % mod))%mod - qmi(2,k) + 1 + mod ) % mod;cout << ans << endl;}return 0;
}
/*
1 411
485514976
*/

C - Nastya Studies Informatics CodeForces - 992B


题目大意:给你一个区间[l,r][l,r][l,r],问你这里面有多少对数的a,b,GCD(a,b)==x,LCM(a,b)==ya,b,GCD(a,b)==x,LCM(a,b)==ya,b,GCD(a,b)==x,LCM(a,b)==y


解题思路:1.这是我开始想法根据定义:GCD(a,b)=p1min(a,b)∗p2min(a,b)......pnmin(a,b)=xGCD(a,b)=p_1^{min(a,b)}*p_2^{min(a,b)}......p_n^{min(a,b)}=xGCD(a,b)=p1min(a,b)​∗p2min(a,b)​......pnmin(a,b)​=x
LCM(a,b)=p1max(a,b)∗p2max(a,b)......∗pnmax(a,b)=yLCM(a,b) = p_1^{max(a,b)}*p_2^{max(a,b)}......*p_n^{max(a,b)}=yLCM(a,b)=p1max(a,b)​∗p2max(a,b)​......∗pnmax(a,b)​=y那么aaa和bbb就是在这些因子中每个对应位挑选一个pxmin(a,b)或者是pxmax(a,b)x∈[1,n]p_x^{min(a,b)}或者是p_x^{max(a,b)}x\in[1,n]pxmin(a,b)​或者是pxmax(a,b)​x∈[1,n]再乘起来组合成的
2.那么我们就可以将x,yx,yx,y分解质因数对于每个对应位置用dfs去枚举一共有2n2^n2n情况
3.我们可以证明n是不大过10的因为前10个质因子相乘已经大过1e91e91e9了
4.我们还要特判一下yyy是否是xxx的倍数


#include <iostream>
#include <cstdio>
#include <stack>
#include <sstream>
#include <vector>
#include <map>
#include <cstring>
#include <deque>
#include <cmath>
#include <iomanip>
#include <queue>
#include <algorithm>
#include <set>
#define mid ((l + r) >> 1)
#define Lson rt << 1, l , mid
#define Rson rt << 1|1, mid + 1, r
#define ms(a,al) memset(a,al,sizeof(a))
#define sfx(x) scanf("%lf",&x)
#define sfxy(x,y) scanf("%lf%lf",&x,&y)
#define sdx(x) scanf("%d",&x)
#define sdxy(x,y) scanf("%d%d",&x,&y)
#define pfx(x) printf("%.0f\n",x)
#define pfxy(x,y) printf("%.6f %.6f\n",x,y)
#define pdx(x) printf("%d\n",x)
#define pdxy(x,y) printf("%d %d\n",x,y)
#define _for(i,a,b) for( int i = (a); i < (b); ++i)
#define _rep(i,a,b) for( int i = (a); i <= (b); ++i)
#define for_(i,a,b) for( int i = (a); i >= (b); -- i)
#define rep_(i,a,b) for( int i = (a); i > (b); -- i)
#define lowbit(x) ((-x) & x)
#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define INF 0x3f3f3f3f
#define hash Hash
#define next Next
#define f first
#define s second
using namespace std;
const int N = 2e5 + 10, eps = 1e-10;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;
map<LL,int> factor[2];
map<PII,bool> res;
LL poi, f[N];
LL l, r, x, y;
LL qmi(LL a, LL b)
{LL res = 1;while(b){if(b & 1) res = (res * a);b >>= 1;a = a * a;}return res;
}
void Factor(LL x, int t)
{for(LL i = 2; i * i <= x; ++ i){if(x % i == 0){int b = 0;while(x % i == 0){x /= i;b ++;}factor[t][i] = b;}}if(x != 1) factor[t][x] = 1;
}inline void dfs(int deep, LL mul)
{if(deep == poi) {if(mul >= l && mul <= r && x * y / mul >= l && x * y / mul <= r)res[{mul,x*y/mul}] = true;return;}dfs(deep+1,mul * qmi(f[deep],factor[0][f[deep]]));dfs(deep+1,mul * qmi(f[deep],factor[1][f[deep]]));return;
}int main()
{cin >> l >> r >> x >> y; Factor(x,0);Factor(y,1);if(y % x != 0) {cout << "0";return 0;}for(auto it : factor[1])f[poi++] = it.f;dfs(0,1);cout << res.size() << endl;return 0;
}

解法2:因为aaa和bbb一定是LCM(a,b)LCM(a,b)LCM(a,b)的因子,那么我们可以暴力枚举LCM(a,b)LCM(a,b)LCM(a,b)所有的因子去判断一下就可以了(下面是别人的代码)


#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+50;
const int inf=0x3f3f3f3f;
const int mod=1e9+7;
typedef long long ll;
ll l,r,x,y;
ll ans=0;
void check(ll a)
{ll b = x*y/a;//cout<<a<<" "<<b<<endl;if(a<l||a>r)return;if(b<l||b>r)return;if(__gcd(a,b)!=x)return;// cout<<a<<" "<<b<<endl;ans+=1;
}
int main()
{scanf("%I64d%I64d%I64d%I64d",&l,&r,&x,&y);for(ll i=1;i*i<=y;i++){if(y%i==0){ll p = y / i;check(i);if(p!=i){check(p);}}}//if(x==y) check(y);printf("%I64d\n",ans);return 0;
}

codeforces数学1600day6[CodeForces - 1029C多区间交+枚举,CodeForces 992C[数学公式推导],CodeForces 992B[质因数分解+暴力枚举]]相关推荐

  1. 【HDU - 5700】【51nod - 1672】 区间交(贪心,STLset 或线段树第k大)

    题干: 小A有一个含有n个非负整数的数列与m个区间,每个区间可以表示为li,ri. 它想选择其中k个区间, 使得这些区间的交的那些位置所对应的数的和最大.(是指k个区间共同的交,即每个区间都包含这一段 ...

  2. 2020研究生数学建模结果_关于举办2020年全国研究生数学建模大赛的通知

    2020年全国研究生数学建模大赛开始啦! 各学院: 为在大学生中倡导学习统计.应用统计的良好氛围,适应大数据时代的高校统计和数据科学人才的培养要求,提高研究生的数据挖掘.数据分析.运用计算机处理数据的 ...

  3. ACMNO.39 分解质因数 求出区间[a,b]中所有整数的质因数分解。蓝桥杯训练!

    题目描述 求出区间[a,b]中所有整数的质因数分解. 输入 输入两个整数a,b. 输出 每行输出一个数的分解,形如k=a1*a2*a3...(a1< =a2< =a3...,k也是从小到大 ...

  4. 数学竟然可以这样学,用Python魔法突破数学结界!

    今年的高考刚刚过去, 在数学考完的当天,"高考数学"又一次荣登微博热搜榜榜首. 对于这场数学考试,可谓几家欢喜几家愁,图灵君浏览着微博上读者的留言深有感触. (选自微博账号@四川校 ...

  5. 数学建模清风第三次直播:excel在数学建模中的应用

    学习网址:课件下载 数学建模清风第一次直播:传染病模型和微分方程拟合 数学建模清风第二次直播:模拟退火算法 数学建模清风第三次直播:excel在数学建模中的应用 博客笔记: 数学建模清风第一次直播:传 ...

  6. 春节特惠活动┃数学无用论??我们欠孩子真正的数学阅读

    ▲ 数据汪特别推荐 点击上图进入玩酷屋 说到数学,我想起了13年一场轰动行业各界的"数学无用论"!那时微博上有个话题叫做#让数学滚出高考#,超过7成网友都表示支持,这可怕的比例就能 ...

  7. 数学无用论??我们欠孩子真正的数学阅读

    说到数学,我想起了13年一场轰动行业各界的"数学无用论"!那时微博上有个话题叫做#让数学滚出高考#,超过7成网友都表示支持,这可怕的比例就能说明在中国由于数学差导致命运被洗牌的真不 ...

  8. 数学在计算机科学上的应用文献,计算机科学技术在数学中应用浅析

    摘 要:人类社会文明的进步与发展过程中,数学在社会各领域中的应用越来越广泛,作用越来越大,已成为当代高新技术的重要组成部分.现代文明技术在计算机高度发展的今天,计算机科学技术在数学中应用越来越受到人们 ...

  9. 他拥有当今世界最高智商,从出生就一路开挂,然而,获得数学最高奖的他却说自己只是个热爱数学的普通人...

    全世界只有3.14 % 的人关注了 爆炸吧知识 今天就讲讲这位平易近人的顶级天才吧. 1975年,陶哲轩出生在澳大利亚,父母均毕业于香港大学,父亲陶象国是一名儿科医生,母亲梁蕙兰是物理和数学专业的高材 ...

最新文章

  1. C++自学者的困境!
  2. matlab调用时间序列工具箱,matlab时间序列工具箱
  3. 框架详解_详解:python Web框架flask表单实现(建议收藏)
  4. bzoj4565 [HAOI2016]字符合并 结论+状压+区间dp
  5. Spring-Lifecycle接口
  6. 微信公开课讲师王泓渊:小游戏开放能力
  7. win7录屏_学用系列|清晰、体积小,这些录屏工具适合正在为录屏苦恼的你
  8. Gym 100963B
  9. python画图时常用的颜色——color=‘ ’
  10. 源泉书签支持批量删除功能啦
  11. 1080 端口被占用
  12. chrome谷歌浏览器使用技巧
  13. 使用opengl和c++实现迷宫地图的路径搜索和显示(基于DFS)
  14. SCI论文的Highlights怎么写(正经的教你怎么写)
  15. android 指纹识别 怎么使用方法,android实现指纹识别
  16. 微信小程序自定义头部导航栏
  17. 非对称加密RSA文本和Excel文件加密练习
  18. 2023成都电源工业展览会
  19. 星星之火-42:LTE空口协议栈、数据处理流程与LTE的调制技术大全
  20. Keras : 训练heart心脏病诊断训练集并测试

热门文章

  1. C语言,二维数组的逗号!_只愿与一人十指紧扣_新浪博客
  2. 刘强东的代码水平到底有多强?30年前就已破万!
  3. 链表问题13——删除无序单链表中值重复出现的节点
  4. 栈与队列7——单调栈结构(初阶问题)
  5. 如何在主机win10和虚拟机(virtualbox)中的Ubuntu进行文件传输即共享文件夹的建立
  6. HDU 4826 Labyrinth(DP解法)
  7. 洛谷 P1309 瑞士轮
  8. Windows 服务器操作系统安全设置加固方法
  9. intellij idea 和 myeclipse 转换
  10. Java虚拟机性能监控工具草览