- 浏览: 508892 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
jkxydp:
算法运行的结果根本就不对。
BM算法. -
soarwindzhang:
感谢博主的分享,我今天看了您的UFSET非递归的路径压缩时感觉 ...
并查集 -
zhangning290:
楼主好像只考虑了坏字符规则,。没有考虑好后缀
BM算法. -
lsm0622:
文字描述有错误 误导新学者
求有向图的强连通分量(scc):Tarjan算法 -
knightchen:
博主,你太强了!这篇文章对我学习C++多线程很有帮助!谢谢
并发学习之一_windows下ZThread在CodeBlocks上的安装与配置
1,题意
给出n个数,让你利用这些书构造出一个最长的生成序列.
要求序列是一个等差数列或等比数列或等幂数列
2,解答
3,代码
给出n个数,让你利用这些书构造出一个最长的生成序列.
要求序列是一个等差数列或等比数列或等幂数列
2,解答
3,代码
#include <iostream> #include <map> using namespace std; typedef long long LL; map<LL,int> m; //保存元素 LL d[100]; //输入序列 int cnt;//测试数 int n;//元素个数 int ans;//记录序列长度 bool in_range(LL a,int k) //检查a^k是否在[-2^31 2^31)之间 { LL ret=1; while(k--) { ret*=a; if(ret>0x7fffffff||-ret>0x8fffffff) return false; } return true; } LL power(LL a,int k) //求a^k { LL ret=1; while(k--) ret*=a; return ret; } void findNum(LL a,int k,int st) { int l=0; //记录当前长度 switch(st) { case 1: //寻找等差数列 for(LL i=a;;i+=k) { //这个元素存在,序列长度增加 if(m[i]) m[i]--,l++; else break; } if(l>ans) ans=l; for(int i=a;l;i+=k) { m[i]++; l--; } break; case 2: //寻找等比数列 for(LL i=a;;i*=k) { //这个元素存在,序列长度增加 if(m[i]) m[i]--,l++; else break; } if(l>ans) ans=l; for(int i=a;l;i*=k) { m[i]++; l--; } break; case 3: //寻找等幂序列 //注意这里的处理 for(LL i=a;;i=power(i,k)) { //这个元素存在,序列长度增加 if(m[i]) m[i]--,l++; else break; if(!in_range(i,k)) break; } if(l>ans) ans=l; for(int i=a;l;i=power(i,k)) { m[i]++; l--; } break; } } int main() { freopen("5.18.in","r",stdin); cin>>cnt; while(cnt--) { cin>>n; ans=1;//长度至少为1 m.clear(); for(int i=0;i<n;i++) { cin>>d[i]; m[d[i]]++; } for(int i=0;i<n;i++) for(int j=0;j<n;j++) //取出任意两个数 { if(i!=j) { findNum(d[i],d[j]-d[i],1); //找出最长的等差数列 //找等比数列,保证d[i]!=0,且可以整除 if( d[i]&&d[j]%d[i]==0 ) findNum(d[i],d[j]/d[i],2); //找等幂序列,分好几种情况 switch(d[i]) { case 0: if(d[j]==0) //只能取0 findNum(0,1,3); break; case 1: if(d[j]==1) //只能取1 findNum(1,1,3); break; case -1: if(d[j]==-1) //k为奇数 findNum(-1,1,3); if(d[j]==1) //k为偶数 findNum(-1,0,3); break; default: for(int k=0;in_range(d[i],k);k++) { LL f=power(d[i],k); if(f>abs(d[j])) break; //该元素不存在 else if(f==d[j]) //找到了当前的k { findNum(d[i],k,3); break; } } } } } cout<<ans<<endl; } return 0; }
- 5.18.rar (1.3 KB)
- 下载次数: 0
发表评论
-
称球问题
2010-12-16 14:13 1264[节选]http://mindhacks.cn/2008/06 ... -
平均要取到第几个随机数才会让序列第一次下降
2010-12-15 12:05 1284[转载]http://www.matrix67.com/blo ... -
输出一个数列的逆序数
2010-12-10 20:39 26781,这个问题算法导论讲归并排序时,提到过。 找到一个实现代码, ... -
给出前序和中序序列,输出后序序列
2010-12-10 11:46 15121,给出一个实现代码: #include <stdi ... -
输入是一个n*m的矩阵,要求找到其中最大的全0字矩阵
2010-11-25 12:16 15201,分析: 这个题其实就是最大子矩阵,只不过把0的权设为1,其 ... -
一些常见的海量数据处理题目
2010-11-25 11:23 1592很长时间没有更新blog了,先唠叨两句. 这段时间发生了几件不 ... -
不限数目的1、5、10、20、50面额的纸币,有多少种方法凑出100元
2010-09-21 17:22 20091,有不限数目的1、5、10、20、50面额的纸币,有多少种方 ... -
输出1到最大的N位数
2010-09-01 14:23 13231,题意: 输入数字n,按顺序输出从1最大的n位10进制数。比 ... -
找出数组中两个只出现一次的数字
2010-08-26 13:13 18451,题意: 一个整型数组里除了两个数字之外,其他的数字都出现了 ... -
字符串的逆序
2010-08-26 11:23 8211,老题目了,给个自己的版本. #include < ... -
寻找丑数
2010-08-26 10:57 31121,题意: 把只包含质因子2、3和5的数称作丑数(Ugly N ... -
寻找连续序列,使其和等于n
2010-08-26 10:15 11741,分析: 首尾两个游标. 如果当前sum < n, 尾 ... -
n个筛子的和出项的次数
2010-08-25 15:47 8361, 题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S ... -
从文件中随即提取一个字符串
2010-05-12 12:54 763算法思路: 读入第一个:概率1保留。 读入第二个:1/2保留上 ... -
编写一些代码,确定一个变量是有符号数还是无符号数。
2010-05-12 12:53 9391,参数是一个值: #define ISUNSIGNED(va ... -
寻找移位有序数组的转折点
2010-05-09 00:22 14331,题意: 原来一个有序数组,分成前后两部分并将两部分交换得到 ... -
递归返回最大值
2010-05-06 19:20 7971,实例代码: #include<iostream& ... -
设定哨兵,返回最大值
2010-05-06 19:16 10231,精炼的代码总是那么迷人. 实例代码: #include ... -
最长平台
2010-05-06 19:01 9821,已知一个已经从小到大排序的数组,这个数组中的一个平台(Pl ... -
返回'+','-'表达式的计算结果
2010-05-04 17:07 7391,实例代码: #include <iostream ...
相关推荐
《国际大学生程序设计竞赛例题解.三:图论、动态规划算法、综合题专集》是一本专门针对编程竞赛中的重要算法与问题解决策略的书籍。它涵盖了图论、动态规划以及综合题型,这些都是在竞赛中经常遇到并且至关重要的...
本系列丛书包括《ACM国际大学生程序设计竞赛:知识与入门》、《ACM国际大学生程序设计竞赛:算法与实现》、《ACM国际大学生程序设计竞赛:题目与解读》、《ACM国际大学生程序设计竞赛:比赛与思考》等4册,其中《ACM...
### 国际大学生程序设计竞赛教程知识点概览 #### 一、国际大学生程序设计竞赛(ACM/ICPC)概述 - **主办单位**: ACM/ICPC由国际计算机学会(Association for Computer Machinery, ACM)主办,该学会是全球历史最...
国际大学生程序设计竞赛例题解(六) 广东省大学生程序设计竞赛例题解析
第二本:国际大学生程序设计竞赛例题解 2 广东省大学生程序设计竞赛试题 2003-2005年 第三本:国际大学生程序设计竞赛例题解 3 图论·动态规划算法·综合题专集 第四本:国际大学生程序设计竞赛例题解 4 广东省...
此资源压缩包分为两卷,此卷为part1。 《ACM国际大学生程序设计竞赛:题目与解读》讲述了ACM国际大学生程序设计竞赛(ACM—...《ACM国际大学生程序设计竞赛:题目与解读》为各类算法配备经典例题及题库,并提供解题思路。
本系列丛书包括《acm国际大学生程序设计竞赛:知识与入门》、《acm国际大学生程序设计竞赛:算法与实现》、《acm国际大学生程序设计竞赛:题目与解读》、《acm国际大学生程序设计竞赛:比赛与思考》等4册,其中《acm...
本系列丛书包括《acm国际大学生程序设计竞赛:知识与入门》、《acm国际大学生程序设计竞赛:算法与实现》、《acm国际大学生程序设计竞赛:题目与解读》、《acm国际大学生程序设计竞赛:比赛与思考》等4册,其中《acm...
本系列丛书包括《acm国际大学生程序设计竞赛:知识与入门》、《acm国际大学生程序设计竞赛:算法与实现》、《acm国际大学生程序设计竞赛:题目与解读》、《acm国际大学生程序设计竞赛:比赛与思考》等4册,其中《acm...
《国际大学生程序设计竞赛例题解》是针对ACM(国际大学生程序设计竞赛)和信息学竞赛精心编纂的一份参考资料,尤其适用于广东省大学生程序设计竞赛的参赛者。该资源包含了一系列精选的竞赛题目,旨在帮助参赛者提升...
这个压缩包“国际大学生程序设计竞赛例题解二”显然是一个关于该竞赛的解题集,包含了解决过去竞赛题目的一些策略和方法。 在ICPC中,参赛队伍需要解决一系列复杂的算法问题,在限时内提交正确答案。这些题目通常...
- **国际大学生程序设计竞赛例题解系列**(郭嵩山):提供多种题型的解决方案,帮助学生拓宽解题思路。 - 在线编程平台如ZJU Online Judge、POJ、Codeforces等,提供了丰富的题库供学生练习。 #### 五、训练规范与...
本系列丛书包括《acm国际大学生程序设计竞赛:知识与入门》、《acm国际大学生程序设计竞赛:算法与实现》、《acm国际大学生程序设计竞赛:题目与解读》、《acm国际大学生程序设计竞赛:比赛与思考》等4册,其中《acm...
算法参考资料国际大学生程序设计竞赛例题解数论、计算几何、搜索算法专集
### 国际大学生程序设计竞赛辅导教程知识点概览 #### 一、国际大学生程序设计竞赛简介 - **背景与意义**: - **主办方**:由国际计算机领域历史悠久且颇具权威性的组织——ACM学会(Association for Computer ...
本系列丛书包括《acm国际大学生程序设计竞赛:知识与入门》、《acm国际大学生程序设计竞赛:算法与实现》、《acm国际大学生程序设计竞赛:题目与解读》、《acm国际大学生程序设计竞赛:比赛与思考》等4册,其中《acm...
本系列丛书包括《acm国际大学生程序设计竞赛:知识与入门》、《acm国际大学生程序设计竞赛:算法与实现》、《acm国际大学生程序设计竞赛:题目与解读》、《acm国际大学生程序设计竞赛:比赛与思考》等4册,其中《acm...
本压缩包“国际大学生程序设计竞赛例题解”包含了图论、动态规划以及综合题目的例题解析,是参赛者或对算法感兴趣的学者宝贵的参考资料。 首先,我们来探讨图论这一领域。图论是数学的一个分支,主要研究点(顶点)...
国际大学生程序设计竞赛(ICPC,International Collegiate Programming Contest)是一项全球性的计算机编程赛事,旨在提升大学生的算法设计、问题解决以及团队合作能力。本压缩包“竞赛例题解(六)光盘”包含了该赛事...
2005年》一书,主要为那些准备参加国际大学生程序设计竞赛(ICPC)以及广东省大学生程序设计竞赛的读者提供了过去竞赛中的一些例题以及解题方法。书中不仅包括了国际赛题,还特别针对广东省的比赛提供了解题资源,...