您的位置:首页 > 其它

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;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: