COJ 0801 非传统题(一)
2015-07-07 20:17
316 查看
非传统题(一) |
难度级别:A; 运行时间限制:1000ms; 运行空间限制:262144KB; 代码长度限制:2000000B |
试题描述 |
大家好!我是COJ第一道非传统题,是不是感觉非常的excited? 作为第一道非传统题,自然要给大家水一水。 不过呢首先要告诉大家什么是非传统题?非传统题实际上就是没有固定的输入输出,很奇怪的题目。本题作为一道引例希望大家喜欢~ 接下来是题目内容: 很久很久以前,chx出过一道大水题。 ------------可是,很可惜他丢失了样例。。。。 现在,chx给你这道题的一套样例,你需要猜测chx出的是什么题然后编写程序解决它,祝你好运! 为了大家调试方便,本题的镜像将会放在练习场里,大家可以看到自己哪个测试点不对。 请从这里下载样例:链接: http://pan.baidu.com/s/1gd8L7qV 密码: ad5q |
输入 |
呵呵 |
输出 |
呵呵 |
输入示例 |
呵呵 |
输出示例 |
呵呵 |
其他说明 |
保证所有的运算在int范围内。 |
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<queue> #include<cstring> #define PAU putchar(' ') #define ENT putchar('\n') using namespace std; inline int read(){ int x=0,sig=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-')sig=-1;ch=getchar();} while(isdigit(ch))x=10*x+ch-'0',ch=getchar(); return x*=sig; } inline void write(int x){ if(x==0){putchar('0');return;}if(x<0)putchar('-'),x=-x; int len=0,buf[15];while(x)buf[len++]=x%10,x/=10; for(int i=len-1;i>=0;i--)putchar(buf[i]+'0');return; } const int Safe=5; int gcd(int a,int b){return !b?a:gcd(b,a%b);} int mul(int a,int b,int p){ int tmp=(a*b-(int)((double)a/p*b+1e-8)*p); return tmp<0?tmp+p:tmp; } int pow(int a,int b,int p){ int ans=1;a%=p; for(int i=b;i;i>>=1,a=mul(a,a,p)) if(i&1)ans=mul(ans,a,p); return ans; } bool check(int a,int n,int r,int s){ int ans=pow(a,r,n),p=ans; for(int i=1;i<=s;i++){ ans=mul(ans,ans,n); if(ans==1&&p!=1&&p!=n-1) return true; p=ans; } if(ans!=1)return true;return false; } bool MR(int n){ if(n<=1) return false; if(n==2) return true; if(!(n&1)) return false; int r=n-1,s=0; while(!(r&1)) r>>=1,s++; for(int i=0;i<Safe;i++) if(check(rand()%(n-1)+1,n,r,s)) return false; return true; } int n; void solve1(){ n=read(); for(int i=1;i<=n;i++){ write(read()+read());ENT; } return; } void solve2(){ n=read(); for(int i=1;i<=n;i++){ write(MR(read())?1:0);ENT; } return; } void solve3(){ n=read(); for(int i=1;i<=n;i++){ write(read()*read());ENT; } return; } void solve4(){ puts("你的程序需要在此处输出程序本身。听起来很难?努力吧!!!哈哈哈"); return; } void init(){ int type=read(); if(type==1) solve1(); else if(type==2) solve2(); else if(type==3) solve3(); else solve4(); return; } void work(){ return; } void print(){ return; } int main(){init();work();print();return 0;}
相关文章推荐
- Murano PTL&Core
- 为什么使用剪切板时都用GlobalAlloc分配内存
- Asp与Asp.Net
- 图像掩膜的作用
- 五:二叉树中和为某一直的路径
- 【BigData】100 open source Big Data architecture papers for data professionals
- FileZilla && itms-services
- eclipse执行debug as出现问题
- STL - vector容器
- STL - vector容器
- NYOJ 596 谁是最好的Coder
- 二、hadoop伪分布搭建
- leetcode-145-Binary Tree Postorder Traversal
- 【剑指offer】面试题30:最小的 K 个数
- 把从数据库中查询出的一个字段封装到一个List中,返回List
- 【剑指offer】面试题29:数组中出现次数超过一半的数字
- 如何将Emmet安装到到 Sublime text 3?
- Contains Duplicate II
- flask学习之路(一)
- 2014在中国国际社会公共安全博览会