题目描述

有n 个连续函数fi (x),其中1 ≤ i ≤ n。对于任何两个函数fi (x) 和fj (x),(i != j),恰好存在一个x 使得fi (x) = fj (x),并且存在无穷多的x 使得fi (x) < fj (x)。对于任何i; j; k,满足1 ≤ i < j < k ≤ n,则不存在x 使得fi (x) = fj (x) = fk (x)。

如上左图就是3 个满足条件的函数,最左边从下往上依次为f1; f2; f3。右图中红色部分是这整个函数图像的最低层,我们称它为第一层。同理绿色部分称为第二层,蓝色部分称为第三层。注意到,右图中第一层左边一段属于f1,中间属于f2,最后属于f3。而第二层左边属于f2,接下来一段属于f1,再接下来一段属于f3,最后属于f2。因此,我们称第一层分为了三段,第二层分为了四段。同理第三层只分为了两段。求满足前面条件的n 个函数,第k 层最少能由多少段组成。

输入输出格式

输入格式:

一行两个整数n; k。

输出格式:

一行一个整数,表示n 个函数第k 层最少能由多少段组成。

输入输出样例

输入样例#1:
复制

1 1
输出样例#1: 复制

1

说明

对于100% 的数据满足1 ≤ k ≤ n ≤ 100。

不太会证明。。。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<vector>
#include<queue>
#include<bitset>
#include<ctime>
#include<deque>
#include<stack>
#include<functional>
#include<sstream>
//#pragma GCC optimize(2)
//#include<cctype>
//#pragma GCC optimize("O3")
using namespace std;
#define maxn 700005
#define inf 0x3f3f3f3f
#define INF 9999999999
#define rdint(x) scanf("%d",&x)
#define rdllt(x) scanf("%lld",&x)
#define rdult(x) scanf("%lu",&x)
#define rdlf(x) scanf("%lf",&x)
#define rdstr(x) scanf("%s",x)
typedef long long ll;
typedef unsigned long long ull;
typedef unsigned int U;
#define ms(x) memset((x),0,sizeof(x))
const long long int mod = 1e9 + 7;
#define Mod 1000000000
#define sq(x) (x)*(x)
#define eps 1e-3
typedef pair<int, int> pii;
#define pi acos(-1.0)
//const int N = 1005;
#define REP(i,n) for(int i=0;i<(n);i++) inline ll rd() {
ll x = 0;
char c = getchar();
bool f = false;
while (!isdigit(c)) {
if (c == '-') f = true;
c = getchar();
}
while (isdigit(c)) {
x = (x << 1) + (x << 3) + (c ^ 48);
c = getchar();
}
return f ? -x : x;
} ll gcd(ll a, ll b) {
return b == 0 ? a : gcd(b, a%b);
}
ll sqr(ll x) { return x * x; } /*ll ans;
ll exgcd(ll a, ll b, ll &x, ll &y) {
if (!b) {
x = 1; y = 0; return a;
}
ans = exgcd(b, a%b, x, y);
ll t = x; x = y; y = t - a / b * y;
return ans;
}
*/ ll qpow(ll a, ll b, ll c) {
ll ans = 1;
a = a % c;
while (b) {
if (b % 2)ans = ans * a%c;
b /= 2; a = a * a%c;
}
return ans;
} int main(){
//ios::sync_with_stdio(0);
int n, k; cin >> n >> k;
if (n == 1)cout << 1 << endl;
else cout << 2 * (min(k, n - k + 1)) << endl;
return 0;
}

[ZJOI2009]函数 BZOJ1432的更多相关文章

  1. [ZJOI2009]函数 题解

    题目链接:[ZJOI2009]函数 对于$n=1$的情况,直接输出$1$ 对于$n>1$的情况,由于我们可以将图上下反转,所以第$k$层的情况可以被转成第$n-k+1$层 规律自己打个表可以推出 ...

  2. [luogu2591 ZJOI2009] 函数

    传送门 Solution 画图找规律.. Code //By Menteur_Hxy #include <cstdio> #define min(a,b) ((a)>(b)?(b): ...

  3. 【BZOJ1432】[ZJOI2009]Function(找规律)

    [BZOJ1432][ZJOI2009]Function(找规律) 题面 BZOJ 洛谷 题解 这...找找规律吧. #include<iostream> using namespace ...

  4. bzoj千题计划138:bzoj1432: [ZJOI2009]Function

    http://www.lydsy.com/JudgeOnline/problem.php?id=1432 http://blog.sina.com.cn/s/blog_86942b1401014bd2 ...

  5. BZOJ1432 [ZJOI2009]Function

    Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sample Input 1 1 Sample Output 1 H ...

  6. 【构造】Bzoj1432[ZJOI2009]Function

    Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sample Input 1 1 Sample Output 1   ...

  7. BZOJ1432: [ZJOI2009]Function(找规律)

    Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1523  Solved: 1128[Submit][Status][Discuss] Descriptio ...

  8. bzoj 1432 [ZJOI2009]Function 思想

    [bzoj1432][ZJOI2009]Function Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sampl ...

  9. BZOJ 1432: [ZJOI2009]Function

    1432: [ZJOI2009]Function Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1046  Solved: 765[Submit][Sta ...

随机推荐

  1. Celery-4.1 用户指南: Daemonization (系统守护进程)

    Generic init-scripts 查看Celery发布里的 extra/generic-init.d/ 文件夹. 这个文件夹中包含了celery worker 程序的通用bash初始化脚本,可 ...

  2. Celery-4.1 用户指南: Optimizing (优化)

    简介 默认的配置做了很多折中考虑.它不是针对某个情况优化的,但是大多数情况下都工作的非常好. 基于一个特殊的使用场景,有很多优化可以做. 优化可以应用到运行环境的不同属性,可以是任务执行的时间,使用的 ...

  3. 问题:table 可否实现对角线;结果:HTML 斜线 表头

    <HTML> <HEAD> <TITLE>斜线表头</TITLE>    </HEAD> <script    Language=&q ...

  4. 使用SQL Server保存Session状态,实现单点登录

    在做一些应用网站时,我们可能会碰到这样一种情况:整个项目是由多个网站组成的,而我们要实现用户从一个站点登录后,跳转到其他网站不需要重复登录,即实现单点登录.目前实现单点登录的技术也有好几种,这篇文章描 ...

  5. C#封装CRUD到SqlHelper类解读

    1.简单说明一下,一般情况下,数据库连接字符串是在App.config文件中进行配置,然后再在代码中进行引用.因此,我们在这里先看一下App.config文件. 首先看需要添加的内容: 参数说明: n ...

  6. koa的跨域访问

    koa跨域访问:1.安装插件 npm install koa-cors --save-dev2.项目的app.js中var cors = require('koa-cors'); app.use(co ...

  7. ROS Learning-030 (提高篇-008 A Mobile Base-06) 控制移动平台 --- (Python)odom导航的例子:移动一个方块路径

    ROS 提高篇 之 A Mobile Base-06 - 控制移动平台 - (Python)再次使用odom导航的一个例子:移动一个方块路径 我使用的虚拟机软件:VMware Workstation ...

  8. Qt测试计算时间

    博客转载自:https://blog.csdn.net/lg1259156776/article/details/52325508 一.标准C和C++都可用 1. 获取时间用time_t time( ...

  9. windows xp版本的chrome浏览器去哪里下载呢?

    http://www.265.com/chrome-download/?slice 265没记错的话应该是GOOGLE的一个导航网站吧,所以可信度是比较高的.

  10. C++笔记--函数

    函数的定义和声明 函数的声明和定义都必须描述相同的类型,但是声明可以不写参数名,定义则必须写参数名,但是他们的参数名字可以不同. 一个局部变量被声明为static,那么这个局部变量将只会被初始化一次, ...