codeforces 1301C Ayoub's function
题目链接:http://codeforces.com/problemset/problem/1301/C
思路:
纯想想了一次,发现one_cnt >= zero_cnt的时候很简单,就是(n)*(n+1)/2+ont_cnt,
但是当one_cnt<zero_cnt的时候,就有点麻烦了,虽然乱七八糟的乱写,发现zero要尽可能
的被one平分才行,但是正向写就比较麻烦。
f(s) = 至少含有1个‘1’的子串 = (n)*(n-1) - fy(只包含‘0’的子串)。
那我们就是要把fy尽可能的小,显然一段长度为x的含'0'的字段,子串数 = (x)*(x+1)/2,
所以我们应该尽可能的用'1'去平分'0'。
m个‘1’最多可以把‘0’分成m+1段,每段数量就是 cnt = zero/(one+1),剩余的zero分别分配到1个到'0'字段中,
也就是remain_zero*cnt,(n)*(n-1)/2减去只包含‘0’的子串就可以了。
#include <iostream>
#include <algorithm>
using namespace std; typedef long long ll; int main(){ int T;
scanf("%d",&T);
for(int i = ; i <= T; ++i){
ll n,one;
scanf("%lld%lld",&n,&one);
ll zero = n - one;
ll cnt = zero/(one+);
ll remain = zero%(one+);//剩余'0'的数量
ll ans = ( n*(n+) - cnt*(cnt+)*(one+) )/ - remain*(cnt+);
//printf("ans = %lld\n",ans);
printf("%lld\n",ans);
} return ;
}
codeforces 1301C Ayoub's function的更多相关文章
- CodeForces 840A - Leha and Function | Codeforces Round #429 (Div. 1)
/* CodeForces 840A - Leha and Function [ 贪心 ] | Codeforces Round #429 (Div. 1) A越大,B越小,越好 */ #includ ...
- CodeForces - 837E - Vasya's Function | Educational Codeforces Round 26
/* CodeForces - 837E - Vasya's Function [ 数论 ] | Educational Codeforces Round 26 题意: f(a, 0) = 0; f( ...
- Codeforces Round #619 (Div. 2) Ayoub's function
Ayoub thinks that he is a very smart person, so he created a function f(s)f(s) , where ss is a binar ...
- Codeforces 837E. Vasya's Function
http://codeforces.com/problemset/problem/837/E 题意: f(a, 0) = 0; f(a, b) = 1 + f(a, b - gcd(a, b)) ...
- Codeforces 837E Vasya's Function - 数论
Vasya is studying number theory. He has denoted a function f(a, b) such that: f(a, 0) = 0; f(a, b) = ...
- 【Codeforces 429D】 Tricky Function
[题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...
- 【codeforces 429D】Tricky Function
[题目链接]:http://codeforces.com/problemset/problem/429/D [题意] 给你n个数字; 让你求出一段区间[l,r] 使得 (r−l)2+(∑rl+1a[i ...
- codeforces 678D Iterated Linear Function 矩阵快速幂
矩阵快速幂的题要多做 由题可得 g[n]=A*g[n-1]+B 所以构造矩阵 { g[n] } = {A B} * { g[n-1]} { 1 } {0 1 ...
- codeforces gym 100187M Heaviside Function
//大概就是没想起来怎么做 解法:首先观察seitan方程,发现我们要找的是满足seitan(si*x-ai)=1的方程数,即si*x-ai>=0的方程数,因为si=1 or -1,于是分类讨论 ...
随机推荐
- Jmeter使用—使用 HTTP代理服务器抓取接口
这里说一下怎么使用jmeter的HTTP代理服务器来抓取接口. 首先,打开jmeter,进入主页面,然后在对工作台(Jmeter版本4.0)点击右键->添加->非测试元件->HTTP ...
- [校内训练19_09_03]c Huge Counting
题意 有一个定义在 k 维非负整点上的函数:$f(x_1,x_2,...,x_k):N_{0}^{k}->\{0,1\}$ ,定义方法如下: 若存在$j∈[1,k],x_j=0$,则$f(x_1 ...
- java反射机制梳理
java反射机制梳理 Java反射简介 反射简介 编译和运行 编译时刻加载类是静态加载类.运行时刻加载类是动态加载类 要让Java程序能够运行,那么就得让Java类要被Java虚拟机加载.Java类如 ...
- JDK源码系列总索引
一 目标 记录学习jdk源码的一些笔记和心得,jdk版本使用11.0.1,工具idea Class后面序号为优先级1-4,优先级递减 目录转载自博客: https://blog.csdn.net/qq ...
- Spring IoC 容器和 bean 对象
程序的耦合性: 耦合性(Coupling),又叫耦合度,是对模块间关联程度的度量.耦合的强弱取决于模块间接口的复杂性.调用模块的方式以及通过界面传送数据的多少.模块间的耦合度是指模块之间的依赖关系,包 ...
- 如何快速查看Linux日志?
因为在生产环境会遇到很多问题,那么最快的定位方式莫过于去看日志,我们都知道服务器每天会产生大量的日志,那么如何快速的定位也就是最关键的. 本文介绍六种查看日志的命令:tail.head.cat.mor ...
- 如何查看dll或者exe是X86还是X64架构
使用VS里面的dumpbin.exe 用法:dumpbin /headers *.exe(需要运行vcvarsall.bat) C32 or Winhex PE L为x86.PE d†为x64 P ...
- LinearLayout里面的空间居中对齐
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- Cheat sheet PySpark SQL Python(PySpark 速查表)
- SSL:GoDaddy SSL证书制作和安装
简介 SSL证书是数字证书的一种类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证书.SSL 证书就是遵守SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁 ...