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,于是分类讨论 ...
随机推荐
- GP工作室——系统设计
团队作业第二次--系统设计 问题 答案 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 团队名称 GP工作室 这个作业的目标 对项目软件进行更为详细的系统性设计 按照本游戏的设计要求,我 ...
- Qt下Armadillo矩阵函数库的添加
其实本文严格说只能算VS2013添加Armadillo教程,因为为了省事,用的是VS2013编译器版本的Qt,Armadillo也直接用了自带例子中的blas_win64_MT.dll.blas_wi ...
- AVR单片机教程——矩阵键盘
本文隶属于AVR单片机教程系列. 开发板上有4个按键,我们可以把每一个按键连接到一个单片机引脚上,来实现按键状态的检测.但是常见的键盘有104键,是每一个键分别连接到一个引脚上的吗?我没有考证过, ...
- C#系列之基础知识点(一)
知识点一:VS启动方法 第一种:双击图标 第二种:window+R——调出cmd,输入devenu properties 属性的意思 知识点二:后缀名解释 .sln 解决方案文件:包含整个解决方案 ...
- C++ 强制类型转换详解
类型转换只不过是让编译器以另外一种方式解释一块内存而已.C++兼容C语言的强制类型转换方式,同时也提供了新型的基于模板的类型转换方式,来提供更多的安全性. 一.C风格的强制类型转换 double k ...
- Dubbo(三):深入理解Dubbo源码之如何将服务发布到注册中心
一.前言 前面有说到Dubbo的服务发现机制,也就是SPI,那既然Dubbo内部实现了更加强大的服务发现机制,现在我们就来一起看看Dubbo在发现服务后需要做什么才能将服务注册到注册中心中. 二.Du ...
- An internal error occurred during: "Launching New_configuration". Path for project must have only on
在Eclipse中按照如下操作 Project -> Properties -> Run/Debug Settings: 1. select "Launching New_con ...
- 应用层vc实现三种文件监视方法
http://hi.baidu.com/sadusaga/item/daa0d4b764c6dd76254b09cc http://bbs.csdn.net/topics/280032788 http ...
- CCF_201604-3_路径解析
没有用stack来写,直接用了字符串和指针,过程有点复杂的.首先对读入的每一个路径,判断它是绝对路径或者相对路径,然后确定起始的路径,然后继续一位位的判断,"//","/ ...
- PTA 7-9 集合相似度(STL之set初体验)
7-9 集合相似度(25 分) 给定两个整数集合,它们的相似度定义为:Nc/Nt×100%.其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数.你 ...