摘要:
Problem 给出n个正整数,从中挑选若干个,使得他们的和为m。如果存在多个,输出排序后字典序最小的一组。如果没有找到任何一组,输出"No Solution"。 Solution 如果n大于15,从16开始分成两部分,先枚举后一半可能出现的值,map记录,然后按顺序枚举前一半,如果能和某个值组成m 阅读全文
摘要:
Problem lyk最近在研究二分答案类的问题。 对于一个有n个互不相同的数且从小到大的正整数数列a(其中最大值不超过n),若要找一个在a中出现过的数字m,一个正确的二分程序是这样子的: ''' l=1; r=n; mid=(l+r)/2; while (l<=r) { if (a[mid]<=m 阅读全文
摘要:
Problem 一个字符串是非回文的,当且仅当,他只由前p个小写字母构成,而且他不包含长度大于等于2的回文子串。 给出长度为n的非回文串s。请找出字典序比s大的,而且字典序要最小的长度为n的非回文。 Solution 非回文条件是s[i-2]!=j&&s[i-1]!=j,从前向后找。 Code #i 阅读全文
摘要:
Problem 阿P给阿K出了一个难题,他给阿K两个素数A,B,保证A,B的位数相同且为4位或5位。 阿K只能对A作一种操作,即将其中一位数字改成另一个数字,要求每次操作后得到的数还是一个素数,问最少多少次可以从A变到B Solution 按每一位bfs Code #include<stdio.h> 阅读全文