• COJ 0801 非传统题(一)


    非传统题(一)
    难度级别: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;}
  • 相关阅读:
    easyui validatebox textbox 取值和赋值
    linq中如何在join中指定多个条件
    easyui datagrid 表头固定(垂直滚动条)、列固定(水平滚动条)
    JS Jquery 中 的遍历
    EasyUI datagrid formatter 属性
    基于C#的socket编程的TCP异步实现
    Winform 最小化双击显示,最小化右键退出。退出
    C#中的Invoke
    Socket之listen() receive()
    20210512学习笔记--一直没干啥有用的事儿,最主要还是量变不够,进展过于慢了
  • 原文地址:https://www.cnblogs.com/chxer/p/4628423.html
Copyright © 2020-2023  润新知