ZOJ 3798 Abs Problem
2014-08-28 16:51
302 查看
ZOJ 3798 Abs Problem
关于绝对值的一个题 题意是从1-N N个不同的数中 选数 每次选一个数
第一次选的数记为a1 写到纸上记为b1 然后每次选的数ai bi=|ai-bi-1| 求bn的最小值以及最大值
可以找规律 (1,2特判) 当模4的值等于0或3时 最小值为0 否则为1
n-1模4的值为0或3时 最大值为n 否则为n-1
注意输出数字的顺序
关于绝对值的一个题 题意是从1-N N个不同的数中 选数 每次选一个数
第一次选的数记为a1 写到纸上记为b1 然后每次选的数ai bi=|ai-bi-1| 求bn的最小值以及最大值
可以找规律 (1,2特判) 当模4的值等于0或3时 最小值为0 否则为1
n-1模4的值为0或3时 最大值为n 否则为n-1
注意输出数字的顺序
#include <cstdio> #include <iostream> #include <cstring> #include <cmath> #include <algorithm> #include <string.h> #include <string> #define eps 1e-8 #define op operator #define MOD 10009 #define MAXN 100100 #define FOR(i,a,b) for(int i=a;i<=b;i++) #define FOV(i,a,b) for(int i=a;i>=b;i--) #define REP(i,a,b) for(int i=a;i<b;i++) #define REV(i,a,b) for(int i=a-1;i>=b;i--) #define MEM(a,x) memset(a,x,sizeof a) //#define ll __int64 using namespace std; int a[500010]; int main() { //freopen("ceshi.txt","r",stdin); int n; while(scanf("%d",&n)!=EOF) { if(n==1) { printf("1 1\n"); printf("1 1\n"); printf("1 1\n"); } else if(n==2) { printf("1 1\n"); printf("1 2\n"); printf("2 1\n"); } else { int mi,mx; int x=n%4; if(x==0||x==3) mi=0; else mi=1; x=(n-1)%4; if(x==0||x==3) mx=n; else mx=n-1; printf("%d %d\n",mi,mx); for(int i=n;i>=1;i--) { if(i==n) printf("%d",i); else printf(" %d",i); } puts(""); for(int i=n-1;i>=1;i--) { if(i==n-1) printf("%d",i); else printf(" %d",i); } printf(" %d\n",n); } } return 0; }
相关文章推荐
- zoj3798 Abs Problem 水题
- ZOJ 3798 Abs Problem
- ZOJ 3798 Abs Problem(找规律)
- ZOJ 3798 Abs Problem
- ZOJ-3798-Abs Problem
- zoj 3798 Abs Problem(数学:推理+滚动数组)
- ZOJ 3798 Abs Problem(规律题)
- zoj 3798 Abs Problem( ZOJ Monthly, August 2014 - A)
- 组队赛#1 解题总结 ZOJ 3798 Abs Problem (找规律+打表)
- ZOJ 3789 Abs Problem
- ZOJ 3798--解题报告
- zoj 1760 Doubles
- ZOJ-1374
- ZOJ3659 Conquer a New Region 并查集
- ZOJ 3958 Cooking Competition 【水】
- zoj 1008 DFS
- ZOJ-1132
- ZOJ 1610 Count the Colors (线段树区间染色)
- ZOJ - 2829
- zoj 2770(差分约束)