当前位置: 首页 > news >正文

岳阳网站建设哪里有广州市建设和水务局网站

岳阳网站建设哪里有,广州市建设和水务局网站,网站里面送礼物要钱怎么做代码,自己制作简易网页解题思路 80分思路代码 由于题目在数据规模中说明阈值k 1, 因此提取因式时只需要关注次数在二次以上的因式。也就是说#xff0c;我们只需要判断从1到待化简因式的平方根是否是满足题意的因式即可。举个例子#xff0c;假设题目所给因式是10000#xff0c;那么只需要判…解题思路 80分思路代码 由于题目在数据规模中说明阈值k 1, 因此提取因式时只需要关注次数在二次以上的因式。也就是说我们只需要判断从1到待化简因式的平方根是否是满足题意的因式即可。举个例子假设题目所给因式是10000那么只需要判断从1到内是否存在10000的质因式即可因为大于100的质因式一定会被舍去。 再观察数据规模如果输入的因式小于1*10^4那么只需要判断从1到100的质因式即可。小学老师应该要求背过从1到100的质数吧现在就派上用场了。 首先读入查询组数, 定义待处理因式n, 阈值k和输出值output。定义一个质因数数集保存从1到101的27个质因数。定义一个哈希数组保存从1到100质因数的指数并且在每次循环初始化哈希数组。 int q; cin q;int n, k, output; int arr[27] {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,87,93,97,101}; int temp[102];for(int i 0; i q; i) {memset(temp, 0, sizeof(int)*102);output 1;cin n k; ... 循环判断从1到101为了保险的27个质因数是否能整除待处理因式n。如果其中一个因数能整除待处理因式那么将该因式从待处理因式分离并在哈希数组中记录该质因数的指数变化。并且继续判断该因数能否被整除直到出现余数。 此时需要看该质因数的指数是否达到阈值。如果达到将相应次数的质因数与输出output相乘。当待处理因式只剩下1的时候退出循环输出output。 for(int j 0; j 27; ) {if(n % (arr[j]) 0){n n / arr[j]; //分离因式temp[arr[j]]; //记录指数continue; //继续看该质因数能否被整除}if(temp[arr[j]] k)output * pow(arr[j], temp[arr[j]]);if(n 1)break;j; } cout output endl; 80分完整代码如下其实80分的数据规模达到10^5,理论上以下代码只能保证10^4规模的输出质数只取到101但是官方好像并没有相应的极端数据 #include iostream #include math.h #include string.husing namespace std;int main() {int q, n, k, output;int temp[102];int arr[27] {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,87,93,97,101};cin q;for(int i 0; i q; i){output 1;memset(temp, 0, sizeof(int)*102);cin n k;for(int j 0; j 27; ){if(n % (arr[j]) 0){n n / arr[j]; //分离因式temp[arr[j]]; //记录指数continue; //继续看该质因数能否被整除}if(temp[arr[j]] k)output * pow(arr[j], temp[arr[j]]);if(n 1)break;j;}cout output endl;}return 0; } 100分思路加代码 有了80分的代码做基础其实100分的代码只需要再做一件事把大于1*10^4的数分解为若干个小于1*10^4的数相乘再沿用80分代码分别判断即可。 首先注意数据规模1*10^10的数据需要用长整型long long表示需要把输入输出数据类型都改为long long,并且重新定义一个更长的哈希数组存放指数。 typedef long long LL; int longtp[10002]; LL n, output; 定义一个返回因数集合的函数divide,将10^5以上的数进行分解只需判断是否存在10^5以下的因数并分离即可加入son集合如果source已经小于10000说明已经可以按照80分代码逻辑处理。 multisetint divide(LL source) {multisetint son;for(int j 2; j 10001;){if(source 10000){son.insert(source);break;}if(source % j 0){source source / j;son.insert(j);//cout j endl;continue;}j;}return son; } 封装80分代码处理10^4以内数据的流程为无返回值函数cal。除了更换变量名称外需要注意80分代码可以丢掉小于阈值的指数100分代码则不行80分代码在处理到最后发现没有100以上质因数后直接丢掉剩下的质数而100分代码需要保留剩下的质数。 因为son集合其他成员分离出来的相同质因数的质数可以叠加。比如说102981488 23*46^4); 如果在处理23时认为质因数23的质数小于1后丢掉这个指数1就不能和后面46^4叠加了。 void cal(int num) {for(int j 0; j 27;){if(num 1)break;if(num % (arr[j]) 0){num num / arr[j];longtp[arr[j]];continue;} //这里不需要判断指数是否大于阈值j;if(j 27)longtp[num]; //最后剩下的大于100的质数不能扔} } 由此计算输出需要统一放到最后进行一次读取所有指数并进行相应乘法运算。 multisetint division; division divide(n); //分离后的因式 memset(longtp, 0, sizeof(int)*10002); //每次都要初始化所有指数为0 for(auto it division.begin(); it ! division.end(); it) {cal(*it); //计算所有因式 } for(int j 2; j 10001; j) //统一判断阈值 {if(longtp[j] k)output * pow(j, longtp[j]); } 完整代码如下 #include iostream #include math.h #include algorithm #include string.h #include setusing namespace std;typedef long long LL; int longtp[10002]; int arr[27] {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,87,93,97,101};multisetint divide(LL source) {multisetint son;for(int j 2; j 10001;){if(source 10000){son.insert(source);break;}if(source % j 0){source source / j;son.insert(j);continue;}j;}return son; }void cal(int num) {for(int j 0; j 27;){if(num 1)break;if(num % (arr[j]) 0){num num / arr[j];longtp[arr[j]];continue;} //这里不需要判断指数是否大于阈值j;if(j 27)longtp[num]; //最后剩下的大于100的质数不能扔} }int main() {int q, k;LL n, output;int temp[102];cin q;for(int i 0; i q; i){output 1;cin n k;if(n 10000){multisetint division; //分离后的因式division divide(n);memset(longtp, 0, sizeof(int)*10002); //每次都要初始化所有指数为0for(auto it division.begin(); it ! division.end(); it)cal(*it); //计算所有因式for(int j 2; j 10001; j) //统一判断阈值if(longtp[j] k)output * pow(j, longtp[j]);}else{memset(temp, 0, sizeof(int)*102);for(int j 0; j 27; ){if(n % (arr[j]) 0){n n / arr[j];temp[arr[j]];continue;}if(temp[arr[j]] k)output * pow(arr[j], temp[arr[j]]);if(n 1)break;j;}}cout output endl;}return 0; }
http://wiki.neutronadmin.com/news/109062/

相关文章:

  • 网站整合营销建设哈密建设集团有限责任公司网站
  • 做网站智能工具交换友情链接的注意事项
  • 品牌网站建设小i蝌蚪网站建设上海
  • 怎么创建图片网站做网站里面的内容
  • 成都哪里可以做网站做网站的开发软件是什么
  • 成都百度seo主要做什么工作内容
  • 个人做网站 用什么语言重庆建设厂招聘信息网站
  • 做影视网站版权问题seo整站优化的思路及步骤
  • 北京网站建设手机app电子商务wordpress页面立体效果
  • 电子商务与网站建设做网站的抬头怎么做
  • 小说网站流量怎么做wordpress编辑页面如何修改
  • 昆山市有没有做网站设计的自己做彩票网站简单吗
  • 网站添加可信任站点怎么做南京高端网站建设公司哪家好
  • 订阅号可以做网站链接吗网站开发软件开发流程图
  • 设计彩票网站开发手机上有趣的网站
  • 网站开发 不好 怎么说嵌入式软件开发工具有哪些
  • 菏泽兼职网站建设wordpress整站克隆
  • 惠州3d网站建设全景高德北斗导航
  • 东莞万江网站制作有哪个网站有免费视频素材
  • 上海专业高端网站建设服株洲做网站渠道电话
  • 网站开发环境的意义企业融资规划师证书
  • 现在还有人用asp做网站wordpress adminlte
  • 找外包做网站要多久网站制作容易吗
  • idc网站模板下载潍坊做网站的那家好
  • 网站加载速度莱芜新闻联播直播
  • 手机端网站界面如何做购物小程序源码
  • 开发网站需要什么人员php制作公司网站首页
  • 淮南做网站的公司有哪些h5制作小程序有哪些
  • 网站添加在线qq聊天php做网站基本流程
  • 免费搭建网站模板哪个网站专门做商铺啊