![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件项目管理作业-easy
文章平均质量分 61
wust_tanyao
这个作者很懒,什么都没留下…
展开
-
3 UVA 10852 Less Prime
先筛素数,再枚举题目范围内质数,答案就是求最小的ans=n-n/i*i ,其中i是枚举的质数#include#include#includeusing namespace std;bool pri[10010];void init(){ int i,j; memset(pri,1,sizeof pri); pri[0]=pri[1]=0;原创 2015-04-26 21:29:48 · 734 阅读 · 0 评论 -
7 POJ 1256 Anagram
给一个字符串包含大小写字符,规定'A'用裸的dfs+map判重 写了一遍超时了,那种机智的dfs方法没有怎么看懂。。最开始用的set+next_permutation,太年轻,也超时了。。。运用一个next_permutation()函数即可,头文件注意要先将字符串sort一遍,然后next_permutation()也要把比较函数cmp传进去,原来都不知道可以三个参数的。。原创 2015-04-29 21:28:04 · 586 阅读 · 0 评论 -
8 UVA 10790 How Many Points of Intersection?
第一排第i个点和第二排第j个点相连,在这条线段上会产生(a-i)*(j-1)个交点,以此类推,推公式即可。#include#define ll long longll a,b;int cas=1;int main(){ while(~scanf("%d%d",&a,&b)&&(a||b)) printf("Case %d: %lld\n",cas+原创 2015-04-29 21:53:54 · 505 阅读 · 0 评论 -
6 UVA 10252 Common Permutation
求两个字符串的最长公共串。即统计各字符出现的次数,按字母序枚举,输出该字符两个字符串中出现的较少次数。#include#includeint cnt1[50],cnt2[50];char s1[1010],s2[1010];int main(){ int i,j,len1,len2; while(gets(s1)!=NULL) {原创 2015-04-29 21:17:59 · 594 阅读 · 0 评论 -
9 POJ 1862 Stripies 简单贪心
观察发现m1+m2变为2*sqrt(m1*m2)质量是能够减少的,因此按质量从大到小排序,每次取最大质量的两个合并,减少的质量是最多的。合并n-1次,最终得到的一个数就是结果。这里用优先队列写的比较方便。#include#include#includeusing namespace std;priority_queue q;int main(){ int原创 2015-04-29 22:11:52 · 515 阅读 · 0 评论 -
5 POJ 3132 Sum of Different Primes
dp[j][k]表示用j个质数表示k这个值得方法数。一个质数只能用一次,类似01背包。#include#includeconst int maxn=1130;int pri[maxn+10],dp[20][maxn+10];void init(){ int i,j; for(i=0;i<=maxn;i++) pri[i]=1; pri[0]原创 2015-04-26 21:35:29 · 619 阅读 · 0 评论 -
4 UVA 10924 Prime Words
筛素数,把给的单词中出现的字母对应值加起来,判断是否是质数。#include#includeusing namespace std;const int maxn=2000;int pri[maxn+10];char s[100];void init(){ int i,j; memset(pri,1,sizeof pri); pri[0]=0原创 2015-04-26 21:31:59 · 719 阅读 · 0 评论 -
2 UVA 10394 Twin Primes
直接筛素数预处理。#include#include#includeusing namespace std;const int maxn=20000000;bool pri[20000005];vector v;void init(){ int i,j; memset(pri,1,sizeof pri); pri[0]=pri[1]=0;原创 2015-04-26 21:25:48 · 678 阅读 · 0 评论 -
1 UVA 10789 Prime Frequency
先筛素数,再统计给定字符的出现频率。#include#includeusing namespace std;bool pri[2010];char s[2010];void init(){ int i,j; memset(pri,1,sizeof pri); pri[0]=pri[1]=0; for(i=2;i<=2000;i++)原创 2015-04-26 21:23:55 · 666 阅读 · 0 评论 -
10 URAL 1014 Product of Digits
找一个最小的正整数Q,Q的各个位置上的数字乘积等于N。每一位只能是2-9,0和1没有用,那么能用尽量大的数就先用大的数,这样保证Q的位数最少,从9枚举到2,如果W的因子只有9-2,那么有解,在把这些因子从小到大输出即可,否则无解。注意要特判0和1,因为要求最小正整数,所以0的时候答案应该是10.#includeint main(){ int i,n,cnt,a原创 2015-04-29 22:18:43 · 684 阅读 · 0 评论