USACO Section 1.3
来源:互联网 发布:大数据人工智能培训 编辑:程序博客网 时间:2024/06/06 04:19
昨天到今天又做了四道简单的题。有开启了一个新的一页。
milk: 很简单的贪心,先选单价便宜的呀。
代码:
/*ID: duanjia2PROG: milkLANG: C++*/#include<iostream>#include<algorithm>#include<fstream>using namespace std;struct node{ int p,a;} s[5005];bool cmp(node x,node y){ return x.p<y.p;}int main(){ ifstream fin("milk.in"); ofstream fout("milk.out"); int n,m,sum,i; fin>>n>>m; for(i=0;i<m;i++) fin>>s[i].p>>s[i].a; sort(s,s+m,cmp); sum=0; for( i=0;i<m;i++){ if(n>=s[i].a) n-=s[i].a,sum+=s[i].p*s[i].a; else{ sum+=n*s[i].p; break; } } fout<<sum<<endl; // system("pause"); return 0;}
Barn1: 讲关牛的一些故事,呵呵。就是说有50个牛栏,其中有的有牛,有的没,牛栏的门坏了,现在你有m块木板,要你遮住所有的有牛的牛栏,木板可以是任意长,每个牛栏相当于需要一个单位的木板,问你至少需要多少木板。先假设把50个都遮住了,再来截m-1个最大的空隙。
代码:
/*ID: duanjia2PROG: barn1LANG: C++*/#include<iostream>#include<algorithm>#include<fstream>using namespace std;bool cmp(int a,int b){ return a>b;}int main(){ ifstream fin("barn1.in"); ofstream fout("barn1.out"); int m,s,c,i,j,ans; int b[205],d[200]; fin>>m>>s>>c; for(i=0;i<c;i++) fin>>b[i]; if( m>=c) fout<<c<<endl; else{ sort(b,b+c); for( i=1,j=0;i<c;i++) if( b[i]-b[i-1]>1) d[j++]=b[i]-b[i-1]-1; sort(d,d+j,cmp); ans=b[0]-1+50-b[c-1]; for( i=0;i<m-1;i++) ans+=d[i]; fout<<50-ans<<endl; } //system("pause"); return 0;}
calfflac: 最长回文。建议去网上查一下manacher算法,我以前做过,所以本题也是这样做的。
代码:
/*ID: duanjia2PROG: calfflacLANG: C++*/#include<iostream>#include<stdio.h>#include<string.h>#include<fstream>using namespace std;int main(){ ifstream fin("calfflac.in"); ofstream fout("calfflac.out"); int i,id,mx,len,pt[20005],j,r[20005]; char str[200005],s[20005],m[50005],ch; memset(pt,0,sizeof(pt)); for( i=0,j=0;str[i]=fin.get(),str[i]>0;i++){ if( str[i]>='a'&&str[i]<='z') s[j]=str[i],pt[j++]=i; if( str[i]>='A'&&str[i]<='Z') s[j]=str[i]-('A'-'a'),pt[j++]=i; } s[j]='\0'; len=j; // cout<<len<<endl; m[0]='@'; for( j=1,i=0;i<len;i++){ m[j++]='#'; m[j++]=s[i]; } m[j++]='#', m[j]='\0'; len=j; //manacher算法。 memset(r,0,sizeof(r)); mx=0,id=0; for( i=1;i<len;i++){ if(i<mx) r[i]=min(r[2*id-i],mx-i) ; else r[i]=1; while(m[i+r[i]]==m[i-r[i]]) r[i]++; if( r[i]+i>mx){ mx=r[i]+i; id=i; } } mx=0; for( i=1;i<len;i++) if(mx<r[i]) mx=r[i],id=i; len=pt[(id+r[id]-3)/2]; fout<<mx-1<<endl; for( j=pt[(id-r[id])/2];j<=len;j++) fout<<str[j]; fout<<endl; // system("pause"); return 0;}
crypt1: 枚举的说,看不出哪里贪心了。得看看别人怎么做了。
代码:
/*ID: duanjia2PROG: crypt1LANG: C++*/#include<iostream>#include<algorithm>#include<string.h>#include<fstream>using namespace std;int f[10];bool Judge(int n){ while( n){ if(!f[n%10]) return false; n/=10; } return true; }int main(){ ifstream fin("crypt1.in"); ofstream fout("crypt1.out"); int i,j,n,cnt; fin>>n; memset(f,0,sizeof(f)); for( i=0;i<n;i++){ fin>>j; f[j]=1; } cnt=0; for( i=111;i<=999;i++){ if( Judge(i)){ for( j=11;j<=99;j++) if( Judge(j) && i*j<10000 && (j%10)*i<1000 && (j/10)*i<1000 && Judge( i*(j%10) ) && Judge(i*(j/10) ) && Judge(i*j) ) cnt++; } } fout<<cnt<<endl; // system("pause"); return 0;}
- USACO section 1.3
- USACO/milk Section 1.3
- USACO Section 1.3 题解
- USACO section 1.3.3
- USACO Section 1.3
- USACO Section 1.3 Wormholes
- USACO Section 1.3
- [USACO Training] Section 1.3
- USACO section 1.3 Wormholes
- USACO Section 1.3 Wormholes
- [USACO]Section 1.3 Barn Repair
- [USACO]Section 1.3 Calf Flac
- [USACO]Section 1.3 Prime Cryptarithm
- USACO Section 1.3 Calf Flac
- USACO Section 1.3 Mixing Milk
- USACO Section 1.3 Barn Repair
- USACO Section 1.3 Calf Flac
- USACO Section 1.3 Prime Cryptarithm
- HDU1424搬寝室
- 文件夹删除/清空
- SQL语句 SELECT LIKE用法详解
- a和&a有什么区别
- SQL SERVER error:40 错误:53
- USACO Section 1.3
- 基础备忘:友元——友元函数,友元成员,友元类
- HDU1558 Segment set(计算几何+并查集)
- Linux下32位和64位机整数数据类型
- ASP.NET Page指令的一些常用属性
- Devexpress 行不过滤
- Java面试题系列三
- 详解iPhone开发中各种动画实现效果
- Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版