非传统题(一) |
难度级别:A; 运行时间限制:1000ms; 运行空间限制:262144KB; 代码长度限制:2000000B |
试题描述
|
大家好!我是COJ第一道非传统题,是不是感觉非常的excited? 作为第一道非传统题,自然要给大家水一水。 不过呢首先要告诉大家什么是非传统题?非传统题实际上就是没有固定的输入输出,很奇怪的题目。本题作为一道引例希望大家喜欢~ 接下来是题目内容: 很久很久以前,chx出过一道大水题。 ------------可是,很可惜他丢失了样例。。。。 现在,chx给你这道题的一套样例,你需要猜测chx出的是什么题然后编写程序解决它,祝你好运! 为了大家调试方便,本题的镜像将会放在练习场里,大家可以看到自己哪个测试点不对。 请从这里下载样例:链接: http://pan.baidu.com/s/1gd8L7qV 密码: ad5q |
输入
|
呵呵
|
输出
|
呵呵
|
输入示例
|
呵呵
|
输出示例
|
呵呵
|
其他说明
|
保证所有的运算在int范围内。
|
题解:加,乘,素数,逗比共同组成了这道题哈哈我好天才呀啦啦啦~
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<algorithm> 5 #include<queue> 6 #include<cstring> 7 #define PAU putchar(' ') 8 #define ENT putchar(' ') 9 using namespace std; 10 inline int read(){ 11 int x=0,sig=1;char ch=getchar(); 12 while(!isdigit(ch)){if(ch=='-')sig=-1;ch=getchar();} 13 while(isdigit(ch))x=10*x+ch-'0',ch=getchar(); 14 return x*=sig; 15 } 16 inline void write(int x){ 17 if(x==0){putchar('0');return;}if(x<0)putchar('-'),x=-x; 18 int len=0,buf[15];while(x)buf[len++]=x%10,x/=10; 19 for(int i=len-1;i>=0;i--)putchar(buf[i]+'0');return; 20 } 21 const int Safe=5; 22 int gcd(int a,int b){return !b?a:gcd(b,a%b);} 23 int mul(int a,int b,int p){ 24 int tmp=(a*b-(int)((double)a/p*b+1e-8)*p); 25 return tmp<0?tmp+p:tmp; 26 } 27 int pow(int a,int b,int p){ 28 int ans=1;a%=p; 29 for(int i=b;i;i>>=1,a=mul(a,a,p)) 30 if(i&1)ans=mul(ans,a,p); 31 return ans; 32 } 33 bool check(int a,int n,int r,int s){ 34 int ans=pow(a,r,n),p=ans; 35 for(int i=1;i<=s;i++){ 36 ans=mul(ans,ans,n); 37 if(ans==1&&p!=1&&p!=n-1) return true; 38 p=ans; 39 } if(ans!=1)return true;return false; 40 } 41 bool MR(int n){ 42 if(n<=1) return false; 43 if(n==2) return true; 44 if(!(n&1)) return false; 45 int r=n-1,s=0; 46 while(!(r&1)) r>>=1,s++; 47 for(int i=0;i<Safe;i++) 48 if(check(rand()%(n-1)+1,n,r,s)) return false; 49 return true; 50 } 51 int n; 52 void solve1(){ 53 n=read(); 54 for(int i=1;i<=n;i++){ 55 write(read()+read());ENT; 56 } return; 57 } 58 void solve2(){ 59 n=read(); 60 for(int i=1;i<=n;i++){ 61 write(MR(read())?1:0);ENT; 62 } return; 63 } 64 void solve3(){ 65 n=read(); 66 for(int i=1;i<=n;i++){ 67 write(read()*read());ENT; 68 } return; 69 } 70 void solve4(){ 71 puts("你的程序需要在此处输出程序本身。听起来很难?努力吧!!!哈哈哈"); 72 return; 73 } 74 void init(){ 75 int type=read(); 76 if(type==1) solve1(); 77 else if(type==2) solve2(); 78 else if(type==3) solve3(); 79 else solve4(); 80 return; 81 } 82 void work(){ 83 return; 84 } 85 void print(){ 86 return; 87 } 88 int main(){init();work();print();return 0;}