随笔分类 - 南邮ACM
摘要:描述 所有题目(Word、PDF格式):http://acm.njupt.edu.cn/acmhome/nuptacm/2013HW.zip在2013“华为杯”南京邮电大学大学生团体歌唱大赛组织工作中,为了营造比赛现场活跃气氛,大赛组委会决定为每位观众发放相同数目的OLED多彩荧光棒。现在我被委派批量采购荧光棒,大赛组委会特别要求:留1个荧光棒备用,其他所有的荧光棒都要平均发放给观众。已知目前市场上OLED多彩荧光棒只能按整包出售,每整包中的荧光棒数目相同。借此次“华为杯”南邮大学生程序设计竞赛的机会,请你帮我解决以下问题:已知观众数目、每整包中的OLED多彩荧光棒数目,我去采购,能否可能满足
阅读全文
摘要:描述 所有题目(Word、PDF格式):http://acm.njupt.edu.cn/acmhome/nuptacm/2013HW.zip2013“华为杯”南京邮电大学大学生团体歌唱大赛比赛形式为:大赛分为多轮,每一轮随机选择参赛团体进行两两PK赛。当根据多轮多场的PK赛成绩能够确定排名次序时,大赛结束。我们将问题进行简化,从1开始按递增顺序给每一个参赛团体分配一个整数编号,已知多场PK赛成绩,请你根据胜负关系确定两个给定参赛团体之间的成绩排名次序。举一个例子,参赛团体1在PK赛中胜参赛团体3,参赛团体2在PK赛中胜参赛团体1,则可知参赛团体2的成绩比参赛团体3的成绩排名高。输入输入包括多个
阅读全文
摘要:描述 所有题目(Word、PDF格式):http://acm.njupt.edu.cn/acmhome/nuptacm/2013HW.zip根据题目A的问题描述,我们知道2013“华为杯”南京邮电大学大学生团体歌唱大赛要求每个参赛团体由3名同一年级在校学生选手组成,各位同学踊跃报名,赛事组委会收到大量参赛团体信息,包括每一个团体选手姓名、学号、年级、联系方式等。因最近流感来袭,大赛组委会根据选手建议,决定将赛事推迟到秋季。该项决定带来的问题是:参赛团体的年级信息需要更新,其中已毕业离校参赛团队的信息需要删除。我们将问题进行简化,大学一年级至四年级的信息依次用0、1、2、3表示,硕士研究生一年级
阅读全文
摘要:描述 所有题目(Word、PDF格式):http://acm.njupt.edu.cn/acmhome/nuptacm/2013HW.zip2013“华为杯”南京邮电大学大学生团体歌唱大赛即将在南邮举行,本次大赛由南京邮电大学大学生就业与创业指导中心主办,南京邮电大学华为俱乐部(Huawei Club)和南京邮电大学学生职业发展协会(SCDA)联合承办,华为技术有限公司提供赞助。为了展示南邮学子风采,大赛组委会规定:每个参赛团体由3名同一年级在校本科生或硕士研究生选手组成,3名选手按照身高等差排列,例如参赛团体中3个选手身高依次为160厘米、170厘米、180厘米,则该团体报名成功。现在的问题
阅读全文
摘要:描述尽管已经在南邮住了四年,Lithium对学校的全貌却并不怎么了解。在即将毕业之际,为了能多留住一些对母校的印象,Lithium经常沿着环绕南邮的道路散步。有一天散步时他突然想到了一个问题——南邮的占地面积到底是多大?由于最近Lithium绕了南邮无数圈,他清楚的记得学校边界上的每一个顶点,但他不知道该怎么用这些数据算出学校的面积,现在请你帮助Lithium解决这个问题。输入输入数据的第一行是一个正整数N(3#include#includeusing namespace std;class coordinate {public: float x; float y;};int ma...
阅读全文
摘要:描述给定一个正整数N,请求出它所有约数的和。 比如,20有6个约数:1,2,4,5,10,20,所以,约数之和是1+2+4+5+10=42。 输入多组测试数据(不多于500000组),每组数据输入一行,一个正整数N(1≤N≤500000)。输入直至文件结尾。输出每组数据输出一行,一个正整数S:表示N的约数之和。样例输入1 2 4 8 16 样例输出1 3 7 15 31 #includeusing namespace std;const int Max_N=500000;int N,DS[Max_N+5];void Divisor_Sum(){ for(int i=1;i>N) {...
阅读全文
摘要:描述最后一届的OSL决赛由神族的Jangbi对阵人族Fantasy。Jangbi5BG爆叉叉准备一波rush,但是范特西早有防备,在地图上埋下了许多地雷。但是Jangbi显然不是毕姥爷那样的无脑平A选手,他开始摆阵型冲阵。开始的时候Jangbi的所有叉叉兵都聚成一团,他先拉出去一个叉叉去踩地雷,然后把剩下的叉叉分成任意两堆(每堆至少有一个叉叉)。接下来每次他会从一堆个数多余2的叉叉中重复这个操作:即先拉出去一个再把剩下的分成两堆。被分到不同堆的叉叉不能重新合并。直到最后Jangbi希望所有剩下的叉叉兵都刚好每三个被分成一堆(据说三只叉叉一队可以输出最大化),他真的可以做到吗?(如果一堆叉叉刚好
阅读全文
摘要:#include using namespace std;int main(){ int n; cin>>n; if(n>0&&n9&&n99&&n999&&n9999&&n99999&&n999999&&n9999999&&n<100000000) cout<<8*(n-9999999)+9+180+2700+36000+450000+5400000+63000000<<endl; else cout<<9
阅读全文
摘要:描述 EATER买来一堆好吃的,总共N+1份,共(N+1)/2种,每种准备了两份,同种都标上了相同的编号.本来准备与他家吃货一同分享,结果却发现被人偷吃了。。EATER发现总数少了一个,所以你的任务就是找出那一个是哪一种,告诉EATER,他就不吃那种,让给他妹子了。 输入 第一行一个奇数Nusing namespace std;int main(){ int n,a; while(scanf("%d",&n)!=EOF) { int result=0; while(n--) { scanf("%d",&a); ...
阅读全文
摘要:描述全排列就是n个不同元素排成一列,我们不妨可以简单地将n个元素理解为自然数1,2,…,n。现假设不同的全排列按照字典序自动从小到大排,123…n的序号为零。编程读入n、m,输出序号为m(mint main(){ char e[21]={0}; long s[21]={1},m,j,k,l; int i,n; scanf("%d%ld",&n,&m); m=m+1; s[0]=1; for(i=1;i=0;i--) { j=(m-1)/s[i]+1;l=0;k=0; do{ k++; ...
阅读全文
摘要:描述在一个nxn个方格组成的棋盘上的任一方格中放置一个皇后,该皇后可以控制他所在 的行,列以及对角线上的所有方格。对于给定的自然数n,在nxn个方格组成的棋盘上最少要放置多少个皇后才能控制棋盘上的所有方格,且放置的皇后互不攻击?设计一个拉斯维加斯算法,对于给定的自然数n (1£ n £100)计算在nxn个方格组成的棋盘上最少要放置多少个皇后才能控制棋盘上的所有方格,且放置的皇后互不攻击。输入输入的第一行有1个正整数n。输出输出计算出最少皇后数及最佳放置方案,第一行是最少皇后数;接下来的1行是皇后的最佳放置方案。样例输入8样例输出5 0 3 6 0 0 2 5 8 #inc
阅读全文
摘要:描述给定2 个n×n矩阵a 和b,试设计一个判定a 和b 是否互逆的蒙特卡罗算法,算法的计算时间应为O(n2)。设计一个蒙特卡罗算法,对于给定的矩阵a和b,判定其是否互逆。输入 输入的第一行有1个正整数n,表示矩阵a和b 为n×n矩阵。接下来的2n行,每行有n个实数,分别表示矩阵a和b 中的元素。输出矩阵a 和b 互逆则输出YES,否则输出NO。样例输入3 1 2 3 2 2 3 3 3 3-1 1 0 1 -2 1 0 1 -0.666667 样例输出YES#include#include#define N 20int main(){ //freopen("a.
阅读全文
摘要:描述在n×n 格的棋盘上放置彼此不受攻击的n 个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在n×n格的棋盘上放置n个皇后,任何2 个皇后不放在同一行或同一列或同一斜线上。设计一个解n 后问题的队列式分支限界法,计算在n´ n个方格上放置彼此不受攻击的n个皇后的一个放置方案。输入 第一行有1 个正整数n。输出 将计算出的彼此不受攻击的n个皇后的一个放置方案输出。第1行是n个皇后的放置方案。样例输入5样例输出1 3 5 2 4#includeusing namespace std;bool place(int k,i
阅读全文
摘要:描述设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。对任意钱数0≤m≤20001,设计一个用最少硬币找钱m的方法。对于给定的1≤n≤10,硬币面值数组T和可以使用的各种面值的硬币个数数组Coins,以及钱数m,0≤m≤20001,编程计算找钱m的最少硬币数。输入输入的第一行中只有1个整数给出n的值,第2行起每行2个数,分别是T[j]和Coins[j]。最后1 行是要找的钱数m。输出输出计算的最少硬币数,问题无解时输出-1。样例输入3 1 3 2 3 5 3 18 样例输出5#includeusi
阅读全文
摘要:描述大于1 的正整数n可以分解为:n=x1*x2*…*xm。 例如,当n=12 时,共有8 种不同的分解式: 12=12; 12=6*2; 12=4*3; 12=3*4; 12=3*2*2; 12=2*6; 12=2*3*2; 12=2*2*3。 对于给定的正整数n,编程计算n共有多少种不同的分解式。 输入输入的第一行有1个正整数n (1≤n≤2000000000)。输出输出计算出的不同的分解式数。样例输入12样例输出8#include#include#includeusing namespace std;int main(){ int n,a[10000],dp[10000]; ...
阅读全文
摘要:描述一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2,…,9。给定表示书的总页码的10 进制整数n (1≤n≤109) 。编程计算书的全部页码中分别用到多少次数字0,1,2,…,9。输入输入只有1 行,给出表示书的总页码的整数n。输出输出共有10行,在第k行输出页码中用到数字k-1 的次数,k=1,2,…,10。样例输入11样例输出1 4 1 1 1 1 1 1 1 1 #include #in
阅读全文
摘要:描述给定一个点分十进制的IP地址,把这个IP地址转换为二进制形式。 输入输入只有一行,一个点分十进制的IP地址 包括四个正整数,用三个.分开,形式为a.b.c.d其中0#includeusing namespace std;int a[8]={0};void TenToTwo(int n){ int i=0,j; if(n==0) { cout=0;j--) cout>s; int len=s.length(); int i; int temp=0; for(i=0;i<len;i++) { if(s[i...
阅读全文
摘要:描述高斯是德国著名数学家、物理学家、天文学家、几何学家,有“数学王子”的美誉。18岁的高斯发现了质数分布定理和最小二乘法。通过对足够多的测量数据的处理后,可以得到一个新的、概率性质的测量结果。在这些基础之上,高斯随后专注于曲面与曲线的计算,并成功得到高斯钟形曲线(正态分布曲线)。其函数被命名为标准正态分布(或高斯分布),并在概率计算中大量使用。在高斯19岁时,仅用尺规便构造出了17边形。并为流传了2000年的欧氏几何提供了自古希腊时代以来的第一次重要补充。高斯总结了复数的应用,并且严格证明了每一个n阶的代数方程必有n个实数或者复数解。在他的第一本著名的著作《算术研究》中,作出了二次互反律的证明
阅读全文
摘要:描述“丑陋数”是指那些质因子只包含2,3或5的数(可以都不包含,所以1也是一个“丑陋数”)。数列1,2,3,4,5,6,8,9,10,12,...给出了前十个“丑陋数”。 给出正整数n,请输出第n个“丑陋数”。 输入每行仅有一个正整数n(n#includeusing namespace std;int max(int a,int b){ return a>=b?(a):(b);}int min(int a,int b){ return a A,B,C,S;int main(){ int i,temp,n; i=1; S.push_back(1); int r...
阅读全文
摘要:描述每一个数字都有自己的实力,我们可以从不同的角度来描述数字的实力。我们做出如下定义:一个数字n的实力是它所拥有的因数个数。例如:6的实力是4 ,因为它有4个因数(1,2,3,6)。 现在我们需要知道从1开始到某一个数n中,哪个数字拥有最强的实力。 输入一个正整数n ( 0using namespace std;#define MAX 500000int prime[MAX];bool a[MAX];int cnt;void Initprime()//?????????{ int i, j; cnt = 0; for( i=2; i>n; max=1;t=1; ...
阅读全文

浙公网安备 33010602011771号