题目又臭又长.直接给链接了
HDU2248

题目大意:

第一个问题Swords:输入一个整数num,数字全部由1组成,保证数字长度小于一百,判断num的位数是不是素数;
第二个问题Stones:有n个数组成的序列(3<=n<=20000),取其中连续的h个数,使得这h个数的和对n取余为0,要求h尽量小,坐标尽量小;
第三个问题Search:输入两个数x,k,求x的第k小素数,没有输出no。例如x=48,k=6. 48分解的{2,2,2,2,3} 所以1-4大素因子都是2,第5大是3,比5大则没有。质因数x即可;(1<=x<6400000 && 0<k<=2^31-1);
第四个问题See:输入一个数n(1<=n<=16000),求2^n。快速幂+大数乘法。

思路:

题目一:好解决,素数打表100以内的素数就行
题目二:也好解决,最容易想到的就是两层for循环,依次扫描知道找到最小的h,当然还有一种方法可以在0(n)时间复杂度内解决
题目三:对x进行素因子分解就行
题目四: 自己写的大数模板+快速幂一直TLE.于是从网上找了套大数重载运算的模板套上去,AC,yeah!

Code

#include <iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define M 20005
#define Max 6400005
const int inf=0x7FFFFFFF;
#define MAXN 9999
#define MAXSIZE 10
#define DLEN 4
using namespace std;bool isPrime[Max];int  prime[Max];int dis[2]={4,2},total=0,pos=0;
char str[5];
int k;
void makeprime()
{int i,j;prime[total++]=2;prime[total++]=3;for(i=5;i<=Max;i+=dis[pos^=1]){if(!isPrime[i]) prime[total++]=i;for(j=0;j<total&&i*prime[j]<=Max;++j){isPrime[i*prime[j]]=true;if(i%prime[j]==0)break;}}
}
class BigNum
{private:int a[100000];    //可以控制大数的位数int len;       //大数长度public:BigNum(){ len = 1;memset(a,0,sizeof(a)); }   //构造函数BigNum(const int);       //将一个int类型的变量转化为大数BigNum operator*(const BigNum &) const;   //重载乘法运算符,两个大数之间的相乘运算BigNum operator^(const int  &) const;    //大数的n次方运算void print();       //输出大数
};
BigNum::BigNum(const int b)     //将一个int类型的变量转化为大数
{int c,d = b;len = 0;memset(a,0,sizeof(a));while(d > MAXN){c = d - (d / (MAXN + 1)) * (MAXN + 1);d = d / (MAXN + 1);a[len++] = c;}a[len++] = d;
}
BigNum BigNum::operator*(const BigNum & T) const   //两个大数之间的相乘运算
{BigNum ret;int i,j,up;int temp,temp1;for(i = 0 ; i < len ; i++){up = 0;for(j = 0 ; j < T.len ; j++){temp = a[i] * T.a[j] + ret.a[i + j] + up;if(temp > MAXN){temp1 = temp - temp / (MAXN + 1) * (MAXN + 1);up = temp / (MAXN + 1);ret.a[i + j] = temp1;}else{up = 0;ret.a[i + j] = temp;}}if(up != 0)ret.a[i + j] = up;}ret.len = i + j;while(ret.a[ret.len - 1] == 0 && ret.len > 1)ret.len--;return ret;
}
BigNum BigNum::operator^(const int & n) const    //大数的n次方运算
{BigNum t,ret(1);int i;if(n==0)return 1;if(n==1)return *this;int m=n;while(m>1){t=*this;for( i=1;i<<1<=m;i<<=1){t=t*t;}m-=i;ret=ret*t;if(m==1)ret=ret*(*this);}return ret;
}
void BigNum::print()    //输出大数
{int i;cout << a[len - 1];for(i = len - 2 ; i >= 0 ; i--){cout.width(DLEN);cout.fill('0');cout << a[i];}cout << endl;
}
int main()
{makeprime();while(scanf("%s",str)!=EOF){getchar();if(strcmp(str,"Swords")==0){char s[105];memset(s,0,sizeof(s));gets(s);for(int i=0;;++i){if(prime[i]==strlen(s)){cout<<"Yes."<<endl;break;}else if((prime[i]>strlen(s))){cout<<"No."<<endl;break;}}}else if(strcmp(str,"Stones")==0)     //(3 <= n <= 20000){int n,i,j;int num[M],f[M],len=inf,p=0,begin=0;memset(f,-1,sizeof(f));f[0]=0;scanf("%d",&n);for(i=1;i<=n;++i){scanf("%d",&num[i]);p=(p+num[i])%n;if(f[p]!=-1){if(i-f[p]<len){len=i-f[p];begin=f[p]+1;}}f[p]=i;}if(len==inf){ printf("可怜的亦纷菲!\n");continue;}for(i=begin;i<begin+len;++i){if(i!=begin)printf(" ");printf("%d",i);}printf("\n");continue;}else if(strcmp(str,"Search")==0) //(1<=x<6400000 && 0<k<=2^31-1);{int num[100];memset(num,0,sizeof(num));int x,i=0,ant=0;scanf("%d%d",&x,&k);bool flag=false;while(x>1){while(x%prime[i]==0){x/=prime[i];k--;if(k==0){flag=true;printf("%d\n",prime[i]);break;}}if(flag)break;i++;}if(!flag)cout<<"no"<<endl;}else{int n;scanf("%d",&n);BigNum ans(2);ans=ans^n;ans.print();}}//cout << "Hello world!" << endl;return 0;
}

纷菲幻剑录 之 十年一剑相关推荐

  1. 幽城幻剑录完美攻略~~

    幽城幻剑录>完美结局流程攻略   要两位女主角不死,必须拿到两样东西:定魂珠.七色璎珞.此攻略包括所有支线. 河 州 镇 兰州城清早夏侯仪起床,到厨房和母亲说话后,从锅里拿到"鸡汤&q ...

  2. 给初学者:用VB写外挂 ———— 实战六:幽城幻剑录-幽城幻劍錄内存修改器

    先起个头,有时间再写,今天病的,到现在也没睡着...本来写了好几天了,哎. 前几天下了这个游戏看了看,感觉还可以吧,发现有诸多存盘修改器.随时存档补丁.穿墙等补丁,很乱,玩家打上一个免CD还要打其他补 ...

  3. 数据库 统计数据收集 有什么作用_《原神》荒山孤剑录2/5收集汇总 荒山孤剑录作用是什么...

    导读 原神荒山孤剑录一共有四册的,在什么地方可以知道这四个呢,很多玩家只能找到其中的一两个,更多的就是隐藏在一些的地方找不到的,下面就来介绍介绍下原神荒山孤剑录全部在哪. 1.荒山孤剑录一 位置:望. ...

  4. ZERO助手新版更新[2008408]支持起点新站、新浪读书频道、17K、逐浪、幻剑等小说站点及百度推广...

    更新内容:更新起点部分为起点新站,修正帐号自动养成部分,修正代理下载,新增百度部分一项免费的顶帖工具. 联系方式(在线时间为PM7:30以后,如果不在可以利用邮件留言): MSN : [email]r ...

  5. ZERO助手新版更新[2008408]支持起点新站、新浪读书频道、17K、逐浪、幻剑等小说站点及百度推广

    更新内容:更新起点部分为起点新站,修正帐号自动养成部分,修正代理下载,新增百度部分一项免费的顶帖工具. 联系方式(在线时间为PM7:30以后,如果不在可以利用邮件留言): MSN : rsuncp@h ...

  6. 近乎于“妖”!浅谈《山海镜花》的美术风格与设计

    引 以三国.武侠.仙侠和神话题材为背景(或称之为架构.框架)的游戏产品,国内绝大部分的老玩家(70.80后)对其均毫无"免疫力"可言.当然,这里面也包括我自身在内.从小的耳濡目染, ...

  7. 流形-Manifold

    流形,也就是 Manifold .不知道你有没有为我在本文开头放上的那个地球的图片感到困惑?这是因为球面是一个很典型的流形的例子,而地球就是一个很典型的"球面"啦(姑且当作球面好啦 ...

  8. 发现一个优秀的Java版国人仿曹操传游戏

    终于又看见有国人用Java写J2ME以外的游戏了,先让偶们一起为作者的开创精神而叫声好吧! 该作者博客如下:http://www.cnblogs.com/egria ,http://salin.jav ...

  9. 发现一个优秀的Java版国人仿曹操传游戏 1

    终于又看见有国人用Java写J2ME以外的游戏了,先让偶们一起为作者的开创精神而叫声好吧! 该作者博客如下:http://www.cnblogs.com/egria,http://salin.java ...

最新文章

  1. UNICODE转多字节
  2. SAP采购Invoice保存检查增强:INVOICE_UPDATE
  3. 漫画:为什么程序员没有女友?
  4. web前端工程师必须掌握的24条宝贵经验!
  5. java从hbase增量导出到,Hbase实用技巧:全量+增量数据的迁移方法
  6. Spring之Aop代理对象的产生(二)
  7. 网易云音乐广告CTR预估模型演进过程
  8. C语言表白流星(末尾附加下载地址)
  9. 如何撰写搜索引擎广告创意
  10. 身高预测_大部分都很准哦
  11. 代理自动配置PAC学习
  12. 全球及中国墙绘机行业运营模式及市场供需预测报告2022-2028年
  13. 2021.11.22【读书笔记】丨生物信息学与功能基因组学(第五章第五节 用类似于BLAST的比对工具快速搜索基因组DNA)
  14. OpenFlow网络基本介绍
  15. 全球人工智能工程师 冬令营火热招生ing
  16. 会声会影2023专业旗舰版新功能介绍
  17. Docker从入门到进阶之基础操作(3)—— 仓库(Repository)
  18. asp下用OracleInProcServer完成对Oracle的连接和操作
  19. Qiskit中的barrier()是干啥的
  20. 2022.10.6 英语背诵

热门文章

  1. 毁掉一个团队最快的方式,就是领导不停“讲道理“
  2. Datawhale 知识图谱组队学习 之 Task 1 知识图谱介绍
  3. Jenkins与Allure持续集成
  4. 90% 前端都会的 ES6 简化代码技巧,你用过哪些?
  5. linux操作系统期末考试大题,《Linux操作系统》Linux-期末考试试题-含答案.doc
  6. 工厂模式下的动态Mybatis-Plus
  7. 微信小程序中的vuex(MobX)
  8. 【JAVA 】看漫画学java
  9. 完美诠释中国智造 京东家电携合作伙伴闪耀AWE
  10. java写一个web服务器_Java实现web服务器功能(简版) | kTWO-个人博客