A - 高橋君とカード / Tak and Cards (DP)

题目链接

题目大意:

有 \(n\) 个数字,要求取出一些数字,使得它们的平均数恰好为 \(x\) ,问有几种取法。

大致思路:

只要将每一个数字减掉 \(x\) ,那么问题就变成在 \(n\) 个数字中选取一些数字使得和为 \(0\) 的方案数,是一个经典的 \(dp\) 问题,不过要注意细节问题

代码:

展开查看代码

```c++
#include
#define ll long long
using namespace std;
const int N=5010;
const int Y=2500;
ll dp[N][N];
int n,x;
int a[N];
int main()
{
//freopen("H:\\c++1\\in.txt","r",stdin);
//freopen("H:\\c++1\\out.txt","w",stdout);
scanf("%d%d",&n,&x);
dp[0][Y]=1;
for(int i=1;i


B - 桁和 / Digit Sum (思维)

题目链接

题目大意:

定义 \(f(n,b)\) 为 \(n\) 在 \(b\) 进制下各位数之和,现在给定 \(,n,s\) ,为求得最小的 \(b\) 使得 \(f(n,b)=s\)

\((n,s<=1e11)\)

大致思路:

这题很巧妙,首先如果答案 \(b\) 小于 \(1e6\) ,那么直接暴力枚举即可,若 \(b>1e6\) ,那么由于 \(n<=1e11\) ,那么 \(n\) 必然可以写成 \(n=kb+r\) ,且 \(s=k+r\) ,的形式, \(n-s=k(b-1)\) ,只要枚举 \(n-s\) 的因数即可解决,思维好题。

代码:

展开查看代码

```c++
#include
#define ll long long
using namespace std;
ll n,s;
bool check(ll x){
if(n/x>=x)return 0;
if(x>n>>s;
ll b=1e18;
if(n==s)b=n+1;
if(n>s){
ll temp=n-s;
for(ll t=1;t


C - 高橋君とホテル / Tak and Hotels (倍增)

题目链接

题目大意:

水平轴上有 \(n\) 个点,每次跳不能超过 \(L\) ,每次必须跳在点上, \(Q\) 次询问,每次询问 \(,x,y\) ,表示从 \(x\) 到 \(y\) 最少需要跳几下。

大致思路:

感觉这题比较常见,是倍增的经典套路,用二分处理出 \(dp[i][0]\) ,跑一下预处理,然后就每次询问log查询就行了。

代码:

展开查看代码

```c++
#include
using namespace std;
const int N=1e5+10;
int dp[N][23];
int n,L;
int a[N];
int q,x,y;
int ef(int id,int v){
int l=id,r=n,ans=id;
while(l=0;i--){
if(dp[pos][i]y)swap(x,y);
printf("%d\n",js(x,y));
}
return 0;
}
```


D - 最良表現 / Best Representation (KMP)

题目链接

题意大意:

定义一个字符串合法:当该字符串没有循环节存在,给出 \(string s\) ,令 \(F=(f_1,f_2..f_m)\) 满足 \(f_i\) 为 \(s\) 的某一部分. \(f_1,f_2,..f_m\) 连起来为 \(s\) .并且任意 \(f_i\) 为合法

\(|s|<=5e5\),求出 \(F\) 表示中最小的 \(m\) .并求出最小 \(m\) 的方案数?

大致思路:

这题感觉不难,只是由于是最后一题心理上有些畏惧,可惜了,首先先求出字符串的循环节,如果不存在循环节那么答案就是 \(1\ 1\) ,特判每一个字母都相同的情况答案为 \(len\ 1\) ,比较显然,那么我们可以确定剩下的字符串必然可以分成两个好串,那么我们只要枚举断点用 \(kmp\) 判断前面的字符串和后面的字符串是否为好串即可,代码实现也比较简单。

代码:

展开查看代码

```c++
#include
using namespace std;
const int N=5e5+10;
char s[N];
char s1[N];
int nxt[N],nxt1[N];//next数组
void kmp(char *t,int *nxt){//t为去匹配,s为被匹配
int i,j;
int len1=strlen(t+1);
nxt[0]=nxt[1]=0;
for(i=2,j=0;i

AtCoder-arc060 (题解)的更多相关文章

  1. AtCoder ExaWizards2019题解

    AtCoder ExaWizards2019题解 AtCoder (因为代码直接用模板写的,可能有点冗长) A.Regular Triangle 给你三根棍子的长度,问你能否用他们组成等边三角形. 什 ...

  2. Atcoder ARC-060

    ARC060(2020.7.8) A 背包板子 B 首先感觉这个东西应该不能直接 \(O(1)\) 算出来,那么复杂度应该就是 \(O(\log n), O(\sqrt{n}), O(\sqrt{n} ...

  3. KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) 题解

    KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) 题解 哦淦我已经菜到被ABC吊打了. A - Century 首先把当前年 ...

  4. 【Atcoder ARC060F】最良表現 / Best Representation

    Atcoder ARC060 F 题意:给一个串,求将其分成最少的没有循环节的串的种数. 思路:先求KMP的\(fail\)数组.然后发现最少的串数只有三种可能:\(1\).\(2\).\(n\). ...

  5. AT2370 Piling Up

    https://www.luogu.org/jump/atcoder/2370 题解 答案不是\(2^{2m}\)因为每轮的第一次取球可能会不够. 我们可以设\(dp[i][j]\)表示到了第\(i\ ...

  6. Triple Shift

    来源:Atcoder ARC 136 B - Triple Shift (atcoder.jp) 题解:这道题我们不可能去硬模拟(大多数这种题都不能这样去模拟的),然后我们就要去发现特性, 发现把 a ...

  7. 重修 Slope Trick(看这篇绝对够!)

    Slope Trick 算法存在十余载了,但是我没有找到多少拍手叫好的讲解 blog,所以凭借本人粗拙的理解来写这篇文章. 本文除标明外所有图片均为本人手绘(若丑见谅),画图真的不容易啊 qwq(无耻 ...

  8. AtCoder Regular Contest 094 (ARC094) CDE题解

    原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...

  9. AtCoder ExaWizards 2019 简要题解

    AtCoder ExaWizards 2019 简要题解 Tags:题解 link:https://atcoder.jp/contests/exawizards2019 很水的一场ARC啊,随随便便就 ...

  10. AtCoder Grand Contest 017 题解

    A - Biscuits 题目: 给出 \(n\) 个物品,每个物品有一个权值. 问有多少种选取方式使得物品权值之和 \(\bmod\space 2\) 为 \(p\). \(n \leq 50\) ...

随机推荐

  1. cc2530中单片机的通用I/O接口

    cc2530中有21个输入/输出引脚. 这些引脚可以设置为通用I/O或者设置为外设I/O.(其实这里的外设还是不太懂到底指什么,网上说输入设备,但是通用I/O也可以输入啊,为什么要弄外设I/O?) 其 ...

  2. Reconstructing Cloud-Contaminated Multispectral Images With Contextualized Autoencoder Neural Networks(自编码机重建云污染区)

    1.逐像元输入输出与邻域输入输出,邻域处理是先flatten,再unflatten 2.用MDL方法(最小描述长度)寻找自编码机最佳隐藏层数 3.多目标优化方法寻找MDL方法的超参数,平衡MDL方法两 ...

  3. ZooKeeper入门实战教程(一)-介绍与核心概念

    1.ZooKeeper介绍与核心概念1.1 简介ZooKeeper最为主要的使用场景,是作为分布式系统的分布式协同服务.在学习zookeeper之前,先要对分布式系统的概念有所了解,否则你将完全不知道 ...

  4. gitosis管理员的密钥丢失解决办法

    前提:win10默认安装配置完git:已经在linux服务器上配置完gitosis. 适用于:gitosis管理员的密钥丢失的情况 解决办法分三步: 1.git bash命令行下,将新的密钥中的公钥上 ...

  5. 【Gamma】Scrum Meeting8

    目录 写在前面 进度情况 任务进度表 燃尽图 照片 写在前面 例会时间:6.6 22:30-22:45 例会地点:微信群语音通话 代码进度记录github在这里 进度情况 任务进度表 注:点击链接跳转 ...

  6. 每天一个命令-cp 命令

    cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文 ...

  7. 【maven】maven下载依赖jar的源码

    mvn dependency:sourcesmvn dependency:resolve -Dclassifier=javadoc 命令使用方法:首先进入到相应的pom.xml目录中,然后执行以上命令 ...

  8. OpenCV3与深度学习实例:Dlib+VGG Face实现两张脸部图像相似度比较

    原文:https://my.oschina.net/wujux/blog/2221444 实现思路: 1.使用Dlib识别并提取脸部图像 2.使用VGG Face模型提取脸部特征 3.使用余弦相似度算 ...

  9. C++生成随机数(随机整数/浮点数)方法

    来源:https://blog.csdn.net/u014571489/article/details/82258467 产生一定范围随机数的通用表示公式要取得[a,b)的随机整数,使用(rand() ...

  10. Keras split train test set when using ImageDataGenerator

    Keras split train test set when using ImageDataGenerator I have a single directory which contains su ...