ZOJ2185 简单分块 找规律
来源:互联网 发布:歌斐资产 知乎 编辑:程序博客网 时间:2024/06/11 09:45
初步找大概位置,然后找精确位置,算是简单化的分块吧!
#include<cstdio>#include<cstdlib>#include<iostream>using namespace std;int c[5000];int num=0;void _get(){ int k=1,m; while(true){m=(k+1)*k/2;if(m>10000000) break;c[++num]=m;k++;}}void _work(int v){ int k=num,a,b,V=v; for(int i=2;i<=num;i++) if(c[i-1]<=v&&c[i]>v) {k=i-1;break;} if(k%2==1) {a=1;b=k; if(c[k]==v) { printf("TERM %d IS %d/%d\n",V,a,b); return ;} b++;v--; if(c[k]==v) { printf("TERM %d IS %d/%d\n",V,a,b); return ;}while(b>1){a++;b--;v--; if(c[k]==v) {printf("TERM %d IS %d/%d\n",V,a,b); return;}} } else {a=k;b=1;if(c[k]==v) { printf("TERM %d IS %d/%d\n",V,a,b); return ;} a++;v--;if(c[k]==v) { printf("TERM %d IS %d/%d\n",V,a,b); return ;}while(a>1){a--;b++;v--; if(c[k]==v) {printf("TERM %d IS %d/%d\n",V,a,b); return;}} }}int main(){int n;_get(); while(~scanf("%d",&n)) _work(n);return 0;}
阅读全文
0 0
- ZOJ2185 简单分块 找规律
- hdoj1021简单题、找规律
- hdoj1005简单题、找规律
- hdoj1061简单题、找规律
- hdoj1097简单题、找规律
- hdoj1098简单题、找规律
- ACdream1187(简单找规律)
- 简单找规律问题列表
- hdu 4279 Number 简单题目 找规律
- codeforce(找规律的简单题)
- zyf的简单数学题(找规律)
- 简单找规律数学题Euler theorem
- 找规律
- 找规律!
- 找规律
- 找规律,
- 找规律
- 找规律
- 程序员面试金典(4):空格替换(python)
- 交换排序:根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。
- springmvc
- 数据结构之LinkList
- 常用的mq
- ZOJ2185 简单分块 找规律
- 自我反思(1)
- JAVA POI 读取2007 EXCEL时 XSSFWorkbook(fis);出错
- JAVA中的线程安全与非线程安全
- poj 3295
- 2017.8.21-----二分!!!在树状数组中的巧妙运用
- 端口占用问题的解决办法
- Lombok 安装、入门
- Java算法之递归算法