bzoj 1432 [ZJOI2009]Function(找规律)】的更多相关文章

1432: [ZJOI2009]Function Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1205  Solved: 895[Submit][Status][Discuss] Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sample Input 1 1 Sample Output 1 HINT 对于100% 的数据满足1 ≤ k ≤ n ≤ 100. Sou…
1432: [ZJOI2009]Function Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1046  Solved: 765[Submit][Status][Discuss] Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sample Input 1 1 Sample Output 1 HINT 对于100% 的数据满足1 ≤ k ≤ n ≤ 100. Sou…
[bzoj1432][ZJOI2009]Function Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sample Input 1 1 Sample Output 1 HINT 对于100% 的数据满足1 ≤ k ≤ n ≤ 100. 找规律 之后每次增加一条线,都不会影响前k层的值,但是因为题目说任意两条直线不平行,于是一定会有交点 我们从上往下增加直线,当已经放了k-1条直线,在放第k条直线的时候,如果直…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1432 [思路] 找(cha)规(ti)律(jie) 分析戳这儿 click here [代码] #include<cstdio> #include<iostream> using namespace std; int main() { int n,k; scanf("%d%d",&n,&k); k=min(k,n-k+); print…
我们可以发现所有的情况(除n=1时),都可以找到两个交叉的直线,就是第一层的那 两个线段所在的直线如图中左 那么我们以这个为准,两边对称着加直线,会得到右图,每一层是折线,且每 加一对儿就多两条线段,一共要加k对儿,所以答案是2*k,由于图是对称的,就是 这张图从上往下看和从下网上看是对称的,所以上面第k个是下面第n-k+1个,所以 比较下这两个大小,k取min然后输出2*k就行了 /********************************************************…
Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1523  Solved: 1128[Submit][Status][Discuss] Description 有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). 如上左…
我们先看一下题目: (有没有和我一样的朋友看到这道题以为是几何不可做题 这个题目真的很难理解,并且样例也给得太水了吧! 理解题目是必不可少的(这并不是你看了半小时题目的理由)--首先我们先简化题目 1:有n个连续函数fi(x)这句话放在平面直角坐标系内就是有n条直线(应该挺好理解的这句话) 2:对于任意fi(x)和fj(x),都有一个值x使两个相等等同与任意两条直线交于一点 3:不存在fi(x)=fj(x)=fk(x)就是不会有三条及以上的直线交于同一点 我们在这里便做一个总结:题目给我们的意思…
1432: [ZJOI2009]Function Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 710  Solved: 528[Submit][Status][Discuss] Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sample Input 1 1 Sample Output 1 HINT 对于100% 的数据满足1 ≤ k ≤ n ≤ 100. Sour…
#include <cstdio> ; inline void Get_Int(int &x) { ; ') ch=getchar(); +ch-'; ch=getchar();} } struct Node { Node * l,* r; int Sum; inline void Push_Up() {Sum=l->Sum+r->Sum;} }; Node Memory[Maxn*],* port=Memory,* null,* Root[Maxn]; int n,m,M…
题目太神了,证明还需要用到生成函数. 鉴于自己太菜,直接抄别人的结果好了. #include <map> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define F(i,j,k) for (int i…