A - Banh-mi CodeForces - 1062C


题目大意:就是开始给你一个01序列,和q次询问,每次询问会给你一个区间,每次你会从这个区间内拿出一个数,在区间内的其他未被拿走的数字会加上这个数的数值,问你以什么顺序拿可以使得拿走的数sumsumsum最大


解题思路:1.假设询问选取的区间是[l,r][l,r][l,r]里面有mmm个数,假如说我我们把某个数nnn拿出来那么里面就有每个(m−1)(m-1)(m−1)个数加上nnn贡献就是n∗(m−1)n*(m-1)n∗(m−1),很明显的贪心每次都选最大的数贡献就是最大的
2.假如说[l,r][l,r][l,r]区间内有xxx个1,有yyy个0,那么我们就是先选每个1出现的位置。

举个例子0011,sum=1+2+3+6sum = 1 + 2 + 3 +6sum=1+2+3+6


#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 log2(a) log(a)/log(2)
#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 count Count
#define pb push_back
#define f first
#define s second
using namespace std;
const int N = 1e5+10, mod = 1e9 + 7;
const double eps = 1e-10;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;
inline LL read()
{LL f=1,s=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9')s=(s<<1)+(s<<3)+ch-'0',ch=getchar();return s*f;
}
char a[N];
LL n, m;
LL pre[N];
LL square[N];
LL b = 1;
LL slove(int be, int end)
{LL res = 0;LL numone = pre[end] - pre[be - 1];LL numzero = end - be + 1 - numone;// cout << numone << " " << numzero << endl;if(numone) res += square[numone - 1] % mod;if(numzero) res += res * square[numzero - 1];return res % mod;
}int main()
{square[0] = 1;_for(i,1,N){square[i] = (b * 2 + square[i - 1]) % mod;b = (b * 2) % mod;}cin >> n >> m;cin >> a+1;_for(i,1,n+1){if(a[i] == '1') pre[i] = pre[i - 1] + 1;else pre[i] = pre[i - 1];}while(m--){int l, r;cin >> l >> r;cout << slove(l,r) << endl;}return 0;
}

B - Sequence Transformation CodeForces - 1059C


题目大意:给你一个nnn然后代表111到nnn的一个序列
然后说每次进行一种操作 序列当前所有数的gcdgcdgcd然后把gcdgcdgcd结果加入一个答案数组 然后此时可以删除序列中的一个数
重复这种操作 直至序列没有数 同时保证答案序列是字典序最大 前面的数越大越好


解题思路:1.首先有一个显而易见的结论:对于任意排列,b序列中的前n/2个数总是1。原因是相邻的两个数互质。
2.现在我们来考虑一个长度大于3的排列,怎样才能将b序列的字典序最大。
根据字典序的定义,我们需要最大化每一次进入队列的gcdgcdgcd
即,当前最大就是整体最好的选择。
那么我们对于任意两个相邻的数,都有一个选择:删除其中的奇数或删除其中的偶数。

我们应该全部删除奇数或者全部删除偶数,不然就会有两个数相邻,从而出现gcd=1gcd=1gcd=1使得答案不优。
如果我们删除偶数,我们就会发现有ai=1ai=1ai=1使得这个序列的gcd=1gcd=1gcd=1而使得答案不优。
所以我们对于每个序列,都要删除奇数,使得gcd∗=2gcd*=2gcd∗=2。
观察操作后的序列

a{2,4,6,8.....(n&1)?(n−1):n}a\{2,4,6,8.....(n\&1)?(n-1):n\}a{2,4,6,8.....(n&1)?(n−1):n}
a{2∗1,2∗2,2∗3......2∗n}a\{2*1,2*2,2*3......2*n\}a{2∗1,2∗2,2∗3......2∗n}
同理继续把奇数乘项删掉
**
这样我们就把问题转化成了一个长度为n/2的子问题。
对于1<=n<=3的序列或长度小于等于3的子问题,题目的样例就是我们想要的结果,特判即可。
复杂度实际上是O(n)的。
**

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<stack>
#include<vector>
#include<queue>
#include<set>
#include<algorithm>
#define max(a,b)   (a>b?a:b)
#define min(a,b)   (a<b?a:b)
#define swap(a,b)  (a=a+b,b=a-b,a=a-b)
#define maxn 320007
#define N 100000000
#define INF 0x3f3f3f3f
#define mod 1000000009
#define e  2.718281828459045
#define eps 1.0e18
#define PI acos(-1)
#define lowbit(x) (x&(-x))
#define read(x) scanf("%d",&x)
#define put(x) printf("%d\n",x)
#define memset(x,y) memset(x,y,sizeof(x))
#define Debug(x) cout<<x<<" "<<endl
#define lson i << 1,l,m
#define rson i << 1 | 1,m + 1,r
#define ll long long
//std::ios::sync_with_stdio(false);
//cin.tie(NULL);
using namespace std;int main()
{int n;cin>>n;int k=1;while(n){if(n==3){cout<<k<<" "<<k<<" "<<k*3<<endl;return 0;}for(int i=0; i<(n+1)/2; i++)cout<<k<<" ";n/=2;k*=2;}return 0;
}

Codeforces1600数学day5[找规律CodeForces - 1059C,贪心数学A - Banh-mi CodeForces - 1062C ]相关推荐

  1. 【计蒜客 - 2019南昌邀请赛网络赛 - K】MORE XOR(数学,找规律,打表)

    Given a sequence of nn numbers a_1, a_2, \cdots, a_na1​,a2​,⋯,an​ and three functions. Define a func ...

  2. 【CodeForces - 1062C】Banh-mi (贪心,数学,找规律,快速幂)

    题干: JATC loves Banh-mi (a Vietnamese food). His affection for Banh-mi is so much that he always has ...

  3. 五年级数学用计算机找规律教案,五年级数学教案——找规律教学设计

    教学目标: 1.理解和掌握分数的基本性质. 2.理解分数的基本性质与商不变规律的关系. 3.培养学生观察比较,抽象概括的能力及初步的逻辑推理能力. 4.鼓励学生敢于发现问题,培养学生勇于解决问题的学习 ...

  4. 计算机中用到哪些数学知识点,小学一至六年级数学知识点归纳(大全).doc

    小学一至六年级数学知识点归纳(大全) 小学一年级数学知识点归纳 一年级上册 知识点概括总结 1.数一数 2.比一比 草莓比香蕉多(1)个. 3.长短 4.高矮 戴眼镜穿蓝色上衣的叔叔要比戴眼镜穿黄色上 ...

  5. 数学/找规律/sgu 118 Digital root

    题意 定义f(n)为n各位数字之和,如果n是各位数,则n个数根是f(n),否则为f(n)的数根 现在给出n个Ai,求出A1*A2*-*AN + A1*A2*-*AN-1 + - + A1*A2 + A ...

  6. Codeforces Round #715 (Div. 1) B. Almost Sorted 找规律

    传送门 文章目录 题意: 思路: 题意: 思路: 找规律yydsyydsyyds. 一看没什么想法,所以打了个表,好家伙,不打不知道,一打不得了,下面是n=6n=6n=6的符合要求的情况: 不难发现, ...

  7. 1235813找规律第100个数_2013年全国中考数学规律探索试题汇编

    由莲山课件提供http://www.5ykj.com/ 资源全部免费(2013•衡阳)观察下列按顺序排列的等式:,,,,-,试猜想第n个等式(n为正整数):an= ﹣ .考点:规律型:数字的变化类. ...

  8. [codeforces 1333A] Little Artem 读懂题+找规律+多举例

    Codeforces Round #632 (Div. 2)   比赛人数12810 [codeforces 1333A]   Little Artem   读懂题+找规律+多举例 总目录详见http ...

  9. [国家集训队]整数的lqp拆分 数学推导 打表找规律

    题解: 考场上靠打表找规律切的题,不过严谨的数学推导才是本题精妙所在: 求:$\sum\prod_{i=1}^{m}F_{a{i}}$ 设 $f(i)$ 为 $N=i$ 时的答案,$F_{i}$ 为斐 ...

最新文章

  1. RabbitMQ的应用场景以及基本原理介绍
  2. 计算机网络职称可以免考么,谁知道四川职称计算机考试的免考条件啊,我要去评职称,但不想去考职? 爱问知识人...
  3. nutch爬虫原来是这样操作的!
  4. 挣值管理:PV,AC和EV
  5. sql server高可用_SQL Server始终在线可用性组采访问题与解答
  6. lnmp安装完之后的一些注意事项
  7. session的概念特点及原理
  8. If 表达式和条件语句
  9. 利用canvas绘制表盘
  10. 亚马逊新手卖家如何快速出单必掌握的运营技巧分享?
  11. Java入门-Java执行语句
  12. HDMI以及HDCP之间的关系介绍
  13. 基于C++实现的图像检索系统
  14. (十五:2020.08.28)CVPR 2013 追踪之论文纲要(译)
  15. 灯一会闪一下怎么回事_房间的灯,关掉以后还会偶尔闪烁一下!
  16. 揭秘篇:架构腐化之谜
  17. 使用Docker国内镜像源
  18. Java中AudioFileStream_iOS音频学习一之AudioFileStream
  19. python输入名字显示姓和名_Python函数返回名字和姓氏中常用字母的列表
  20. linux编译ntohl加什么库,C ++中的64位ntohl()?

热门文章

  1. binary格式和ELF格式区别。用ida打开的样子
  2. Python打印json文件,实现输出
  3. 图像降维之MDS特征抽取方法
  4. 干货|对比理解不同概率估计和模型损失函数
  5. 腾讯以及各大厂的 C++ 开发环境是什么样的?
  6. 第十七篇:信息抽取Information Extraction
  7. Get 了滤镜、动画、AR 特效,速来炫出你的短视频开发特技!
  8. 黄聪:原生js的音频播放器,兼容pc端和移动端(原创)
  9. VCSA 6.5 HA 配置之五:故障转移测试
  10. 使用slice和concat对数组的深拷贝和浅拷贝