codeforces心得1---747div2
codeforces心得1---747div2
cf div2的前AB题一般是字符串or数论的找规律结论题
因此标程极为精简
1.小窍门是看样例或者自己打表或造数据找规律
2.一些不确定的操作,可以化成一种确定合法的操作比如:
div747 A的选择l 和 r的操作,这里的解是不确定的多个的,因此选择简单的且必然l加到r可以等于n的数,可以从数轴想到该数n>0时从l=1-n,r=n,n-1加到 1-n满足为0 总和为n,而n<0时l=n,r=-n-1,从n+1 到 -n-1为0, 总和为n
div747C题,发现b<a 时a/b除不尽,于是最多两次可以达到将字符串转换为某个特定字符的,选择n,选择n-1 ,(n/(n-1)除的尽在本题数据3≤n的范围内不可行)
而字符串里面可能已经存在需要的字符,设位置为i,i之前的所有字符都会变成c(题目需要变成的字符),当i>x/2的时候,2>x/i>1,则x不能整除i,且比x小的都不能,所以让i>n/2,就可以将所有的都变成c
3.即使发现了相同的规律,实现的代码的时候可以更加精练
div747B题,列数字可以看出,序列是n^0 n^1 n0+n1 n^2......
很像二进制的 0001 0010 0011 0100,正好对应该数是升序第几个,于是将k按照状态压缩,一位位取值然后相加
不过起始值是1,每过一位*n
精简前
#include <bits/stdc++.h>
#define MOD (int)(1e9 + 7)
using namespace std;
long long a[105], rec[105];
int n, k;
int cal()
{
int chu = k, shang, yu = 0;
do
{
shang = chu / 2;
rec[++yu] = chu % 2;
chu = shang;
} while (shang);
return yu;
}
int main()
{
int t;
cin >> t;
while (t--)
{
cin >> n >> k;
int countn = cal();
long long sum = 0;
a[1] = 1;
for (int i = 2; i <= 35; i++)
{
a[i] = (a[i - 1] % MOD * n % MOD);
// cout << a[i] << endl;
}
for (int i = 1; i <= countn; i++)
{
if (rec[i])
{
sum += a[i];
sum %= MOD;
}
}
cout << sum << endl;
}
return 0;
}
精简后
#include <bits/stdc++.h>
#define MOD (int)(1e9 + 7)
using namespace std;
int main()
{
int n, k, t;
cin >> t;
while (t--)
{
cin >> n >> k;
long long sum = 0, now = 1;
while (k)
{
if (k & 1)
{
sum = (sum + now) % MOD;
}
k >>= 1;
now = (now * n) % MOD;
}
cout << sum << endl;
}
return 0;
}
codeforces心得1---747div2的更多相关文章
- scrum心得和团队作业
一.学习scrum心得 敏捷的介绍 最近上课我们了解到了敏捷,很多人开始谈论敏捷开发.研究敏捷开发,那么究竟什么才是敏捷开发呢? 简单的说,敏捷开发是一种以人为核心.迭代.循序渐进的开发方法.在敏捷开 ...
- Scrum----学习心得
Scrum学习心得 什么是敏捷开发? 敏捷开发(Agile Development)是一种以人为核心.迭代.循序渐进的 开发方法.它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我 ...
- Codeforces Round #482 (Div. 2) : Kuro and GCD and XOR and SUM (寻找最大异或值)
题目链接:http://codeforces.com/contest/979/problem/D 参考大神博客:https://www.cnblogs.com/kickit/p/9046953.htm ...
- Codeforces Round #482 (Div. 2) :B - Treasure Hunt
题目链接:http://codeforces.com/contest/979/problem/B 解题心得: 这个题题意就是三个人玩游戏,每个人都有一个相同长度的字符串,一共有n轮游戏,每一轮三个人必 ...
- Codeforces Round #490 (Div. 3) :F. Cards and Joy(组合背包)
题目连接:http://codeforces.com/contest/999/problem/F 解题心得: 题意说的很复杂,就是n个人玩游戏,每个人可以得到k张卡片,每个卡片上有一个数字,每个人有一 ...
- Educational Codeforces Round 47 (Rated for Div. 2) :E. Intercity Travelling
题目链接:http://codeforces.com/contest/1009/problem/E 解题心得: 一个比较简单的组合数学,还需要找一些规律,自己把方向想得差不多了但是硬是找不到规律,还是 ...
- Educational Codeforces Round 47 (Rated for Div. 2) :D. Relatively Prime Graph
题目链接:http://codeforces.com/contest/1009/problem/D 解题心得: 题意就是给你n个点编号1-n,要你建立m条无向边在两个互质的点之间,最后所有点形成一个连 ...
- Educational Codeforces Round 47 (Rated for Div. 2) :C. Annoying Present(等差求和)
题目链接:http://codeforces.com/contest/1009/problem/C 解题心得: 题意就是一个初始全为0长度为n的数列,m此操作,每次给你两个数x.d,你需要在数列中选一 ...
- Educational Codeforces Round 47 (Rated for Div. 2) :B. Minimum Ternary String
题目链接:http://codeforces.com/contest/1009/problem/B 解题心得: 题意就是给你一个只包含012三个字符的字符串,位置并且逻辑相邻的字符可以相互交换位置,就 ...
随机推荐
- NOI.AC#2007-light【根号分治】
正题 题目链接:http://noi.ac/problem/2007 题目大意 \(n\)个格子排成一排,每个格子有一个\(0/1\)和一个颜色.开始每个格子都是\(0\),\(q\)次操作取反一个颜 ...
- JQuery EasyUI 结合ztrIee的后台页面开发
JQuery EasyUI 结合 zTree树形结构制作web页面.easyui用起来比较简单,很好的封装了jquery的部分功能,使用起来更加方便,但是从1.2.3版本以后,商业用途是需要付费的, ...
- 为什么 Dapr 如此令人兴奋
如今你构建软件,您可以从数量众多的云服务中进行选择.仅 AWS 就每个月都在不断为其200多项服务添加新服务,而其他云提供商也都在跟上. 如果您的公司想与您的竞争对手竞争,您就需要充分利用这些服务,这 ...
- java 从零开始手写 RPC (04) -序列化
序列化 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何实 ...
- python-docx处理Word必备工具
我的理解 为什么会用到python-docx,因为近段时间下载了大量网文,但格式都是html的,我个人习惯使用word处理文字,于是就想法设法把html文档转换为word,首先要考虑的问题就是从h ...
- Linux系统安装MySql5.7并通过sql脚本导入数据
为了下载到的MySQL版本和目标系统相互兼容,在开启之前,最好了解目标系统的相关信息. 查询系统版本: cat /etc/issue 查看系统位数 getconf LONG_BIT 选择MySQL 根 ...
- v72.01 鸿蒙内核源码分析(Shell解析) | 应用窥伺内核的窗口 | 百篇博客分析OpenHarmony源码
子曰:"苟正其身矣,于从政乎何有?不能正其身,如正人何?" <论语>:子路篇 百篇博客系列篇.本篇为: v72.xx 鸿蒙内核源码分析(Shell解析篇) | 应用窥视 ...
- 如何查找一个目录中所有c文件的总行数
如何查找一个目录中所有c文件的行数 面试题问到了一题,如何统计wc文件夹下所有文件的行数,包括了子目录. 最后在 https://blog.csdn.net/a_ran/article/details ...
- JavaScript03
类型转换和运算符 typeof函数 检测数据类型,可以使用以下两种调用的方式: typeof 变量或表达式 typeof(变量或表达式) var n="asda"; console ...
- LeetCode:“剑指 Offer”
LeetCode:"剑指 Offer" 刷题小菜鸡,花了几天时间做了一遍 LeetCode 上给出的 "剑指 Offer" 在此做一下记录 LeetCode主页 ...