`
暴风雪
  • 浏览: 390531 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

[usaco] Chapter1-Getting started(Section 1.3)

阅读更多

 

/*
    ID:bbezxcy1
    PROG: milk
    LANG: C++
*/
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<iostream>
using namespace std;

class fuck{
	public:
		int val,num;
}sum[10000];
bool cmp(fuck a,fuck b){
	if(a.val<b.val){
		return 1;
	}
	return 0;
}
int main(){
	int need,loc,n,i,j,a,b,c,ans;
    freopen("milk.in","r",stdin );
    freopen("milk.out","w",stdout );
	while(scanf("%d%d",&need,&n)!=EOF){
		ans=0;
	    for(i=0;i<n;i++){
			scanf("%d%d",&sum[i].val,&sum[i].num);
		}
		sort(sum,sum+n,cmp);
		loc=0;
		while(need!=0){
			if(need-sum[loc].num>0){
				need-=sum[loc].num;
				ans+=sum[loc].num*sum[loc].val;
				loc++;
			}
			else{
				ans+=need*sum[loc].val;
				break;
			}
		}
		printf("%d\n",ans);
	}
	return 0;
}

 

/*
    ID:bbezxcy1
    PROG: barn1
    LANG: C++
*/
#include<iostream>
#include<cstring>
#include<fstream>
#include<cstdio>
#include <algorithm>
using namespace std;
const int nMax=1000;
int dis[nMax],pos[nMax];
int main(){
    int m,s,c,i,j,a,b,n,ans;
    freopen ( "barn1.in", "r", stdin );
    freopen ( "barn1.out", "w", stdout );
    while(scanf("%d%d%d",&m,&s,&c)!=EOF){
        for(i=0;i<c;i++){
            scanf("%d",&pos[i]);
        }
        if(m>=c){
            cout<<c<<endl;
            continue;
        }
        sort(pos,pos+c);
        ans=pos[c-1]-pos[0];
        for(i=0;i<c-1;i++){
            dis[i]=pos[i+1]-pos[i];
        }
        sort(dis,dis+c-1);
        b=m;
        m--;
        a=c-2;
        while(m--&&a>=0){
            ans-=dis[a];
//            cout<<"dis"<<dis[a];
//            cout<<" ans"<<ans<<endl;
            a--;
        }
        cout<<ans+b<<endl;
    }
    return 0;
}

  /*

    ID: bbezxcy1
    PROG: calfflac
    LANG: C++
*/
#include<iostream>
#include<cstring>
#include<fstream>
#include<cstdio>
using namespace std;
const int nMax=200000;
int p[nMax];
char str1[nMax];
void build(char *str,int len) {  //abc-->@#a#b#c#
    int i=0,j;
    str1[0]='@';//开始加入另特殊字符
    str1[1]='#';
    j=2;
    for(i=0;i<len;i++ ){//在每个字符两边都插入一个特殊字符
        str1[j++]=str[i];
        str1[j++]='#';
    }
    str1[j]='\0';
}

int ps;
int manacher(){
    int idd,mxx=0,maxx=0,record;
    memset(p,0,sizeof(p));
    for(int i=strlen(str1);i>=0;i--){
        if( mxx>i )
            p[i]=min(mxx-i, p[2*idd-i]);
        else p[i]=1;
        while(str1[i+p[i]]==str1[i-p[i]])
            p[i]++;

        if( i+p[i]>mxx ){
            mxx=i+p[i];
            idd=i;
        }

        if( p[i]>maxx){
            maxx=p[i]-1;//P[id]-1就是该回文子串在原串中的长度
            record=i;
            ps=record;
        }
    }
    return maxx;
}
int main(){
    char c;
    int len,a,b,n,i;
    int pos[nMax];
    char str[nMax],abc[nMax];
    len=n=0;
    freopen ( "calfflac.in", "r", stdin );
    freopen ( "calfflac.out", "w", stdout );
//    cin>>str;
//    cout<<str<<endl;
    while(scanf("%c",&c)!=EOF){
        str[len]=c;
        if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){
            if(c>='a'&&c<='z'){
                abc[n]=c;
            }
            else{
                abc[n]=c+'a'-'A';
            }
            pos[n]=len;
            n++;
        }
        len++;
    }
    abc[n]='\0';
    //cout<<endl<<abc<<endl;
    build(abc,n);
    a=manacher();   //回文串长度
    cout<<a<<endl;
  //  cout<<ps<<"ps"<<endl;
    if(ps%2==1){
        ps=ps/2-1;
      //  cout<<ps<<endl;
        for(i=pos[ps-a/2+1];i<=pos[ps+a/2];i++){
            cout<<str[i];
        }cout<<endl;
    }
    else{
        ps=ps/2-1;
     //   cout<<ps<<endl;
        for(i=pos[ps-a/2];i<=pos[ps+a/2];i++){
            cout<<str[i];
        }cout<<endl;
    }

    return 0;
}

  /*

    ID:bbezxcy1
    PROG: crypt1
    LANG: C++
*/
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int num[30],tmp[30];
int ans,n;
bool shit[30];
bool innum(int a){
	int i,j,b,c;
	while(a){
		b=a%10;
		a/=10;
		if(shit[b]!=1){
			return 0;
		}
	}
	return 1;
}
bool check(){
	int a=tmp[0]*100+tmp[1]*10+tmp[2];
	int b=tmp[3]*10+tmp[4];
	int c=tmp[3]*a;
	int d=tmp[4]*a;
	int e=c+10*d;
	if(c<100||c>=1000||d<100||d>=1000){
		return 0;
	}
	if(e<1000||e>=10000){
		return 0;
	}
	if(innum(c)&&innum(d)&&innum(e)){
		return 1;
	}
	return 0;
}
void dfs(int dep){
    if(dep==5){
		if(check()){
//		    for(int i=0;i<5;i++)
//		    {
//		        cout<<tmp[i]<<" ";
//		    }cout<<endl;
			ans++;
		}
		return;
	}
	for(int i=0;i<n;i++){
		tmp[dep]=num[i];
		dfs(dep+1);
	}
}
int main(){
	int i,j,a,b,c;
    freopen("crypt1.in","r",stdin );
    freopen("crypt1.out","w",stdout );
	while(scanf("%d",&n)!=EOF){
		memset(shit,0,sizeof(shit));
		for(i=0;i<n;i++){
			scanf("%d",&num[i]);
			shit[num[i]]=1;
		}
		ans=0;
		dfs(0);
		printf("%d\n",ans);
	}
	return 0;
}
 

 

 

 

 

 

0
11
分享到:
评论

相关推荐

    usaco chapter3-6

    usaco 3到6章讲解

    USACO section1-5测试数据

    这个压缩包文件包含的是USACO比赛section1到section5的测试数据和标准程序,这对于准备参加USACO竞赛或者想要提升自己编程技能的学生来说,是非常宝贵的资源。 section1至section5代表了USACO比赛的不同难度级别,...

    usaco历年数据---2001

    1. **USACO和ACM/ICPC编程竞赛**:了解这两种竞赛的性质、目标和参赛流程,有助于提升编程和算法技能。 2. **算法设计**:USACO和ACM比赛强调高效的算法设计,通过解题可以学习到排序、搜索、图论、动态规划等多种...

    USACO1-5单元AC代码

    USACO1-5单元AC的代码~ 1 Chapter1 1.1 Section 1.1 1.2 Section 1.2 1.3 Section 1.3 1.4 Section 1.4 1.5 Section 1.5 2 Chapter2 2.1 Section 2.1 2.2 Section 2.2 2.3 Section 2.3 2.4 Section 2.4 3 Chapter3 ...

    USACO2001-2007历年月赛测试数据+题目+题解打包全

    资源包包括USACO 2001-2007年月赛的测试数据;usaco月赛十年题典(2000-2009),usaco月赛2002-2008题解。单独下载需资源分30分以上。为了方便编程爱好者,我这边统一下载打包。欢迎下载。

    usaco历年试题---2002

    《USACO历年试题——2002》 USACO,全称为USA Computing Olympiad,是美国计算机奥林匹克竞赛,旨在提升中学生的算法设计和编程能力。2002年的USACO试题集,是这一赛事历史上的一个重要部分,对于学习算法、准备ACM...

    USACO-Bessie-Come-Home.zip_Home Home

    【标题】USACO-Bessie-Come-Home.zip_Home Home 【正文】 这个压缩包文件中的内容是关于USACO(美国计算机奥林匹克)竞赛中一个名为"Bessie Come Home"的问题的C++解决方案。USACO是一个针对高中生的在线编程竞赛...

    USACO-Magic-Squares.zip_magic

    《USACO魔法方阵:C++编程解析》 USACO(美国计算机奥林匹克)是一项旨在培养高中生计算机科学技能的竞赛。在这个问题中,我们关注的是“Magic Squares”,这是一个经典的数学概念,与C++编程相结合,构成了一个...

    usaco 源程序 section2.3---section 5.5

    USACO(美国计算机奥林匹克竞赛)是一场针对高中生的在线编程比赛,旨在提升参赛者在算法、数据结构和编程方面的技能。源程序是参赛者解决问题的关键,通过编写代码来实现特定的功能或解决数学和逻辑问题。这个...

    USACO-Greedy-Gift-Givers.rar_greedy gift givers

    USACO(USA Computing Olympiad)是一项面向美国高中生的在线编程竞赛,旨在培养参赛者的算法设计和编程技能。在"Greedy Gift Givers"这个题目中,我们面对的是一个贪心算法的应用问题。贪心算法是一种解决问题的...

    usaco 2010-2011

    6. **USACO 一月竞赛** - 2011 年 1 月 7 日至 10 日 7. **USACO 二月竞赛** - 2011 年 2 月 4 日至 7 日 8. **USACO 三月竞赛** - 2011 年 3 月 11 日至 14 日 9. **USACO 美国公开赛** - 2011 年 4 月 28 日至 5 ...

    USACO2001-2007月赛全集

    这是USACO2001-2007月赛全集。 usaco是美国中学生的官方竞赛网站。是美国著名在线题库,专门为信息学竞赛选手准备。推荐直接阅读英语原文,既准确可靠又可提高英语水平。做题方式模拟正式比赛,采用标准测评机、文件...

    USACO-Training-Website:我的USACO培训网站解决方案

    这个名为"USACO-Training-Website:我的USACO培训网站解决方案"的压缩包文件,显然包含了作者对USACO训练网站上部分或所有章节的练习题目的解答。这些解答可能以源代码的形式存在,每个文件顶部可能带有详细的USACO...

    USACO-Chapter1.rar_it_usaco

    《USACO入门指南——第一章解析》 USACO,全称USA Computing Olympiad,是美国计算机奥林匹克竞赛,旨在培养中学生在算法和编程方面的技能。对于初学者来说,USACO提供了很好的学习路径和挑战。本文将针对USACO的第...

    USACO-Training-Pages:美国计算机奥林匹克训练页

    在这个“USACO-Training-Pages”压缩包中,我们可以期待找到与USACO竞赛相关的各种资料,尤其是针对Java语言的学习材料。Java作为一种广泛应用于计算机科学领域的面向对象的编程语言,因其强大的跨平台能力和简洁的...

    usaco-java-gold

    在这个“usaco-java-gold”主题中,我们将深入探讨Java在USACO黄金级别比赛中的应用,以及如何解决相关问题。 一、Java语言基础 1. 类与对象:Java是一种面向对象的语言,理解和熟练运用类和对象是解决USACO问题的...

    Notes-USACO-2021-弹簧

    本压缩包“Notes-USACO-2021-Spring”中的笔记主要聚焦于2021年春季训练营和比赛的知识点,对于想要深入学习算法和提升编程能力的爱好者来说,具有极高的学习价值。 笔记内容可能包括但不限于以下几个方面: 1. **...

    USACO题解+程序

    我的USACO题解和程序

    USACO-Chapter2.rar_beginners

    "USACO-Chapter2.rar_beginners" 是针对USACO第二章内容的压缩包,特别适合编程新手入门。 在USACO的第二章,主要涉及基础的算法和数据结构,这对于构建扎实的编程基础至关重要。让我们逐一解析这个压缩包中的四个...

    USACO Results Analytics-crx插件

    分析USACO比赛结果。 根据数据绘制一些图表。 此扩展程序从USACO竞赛结果页面收集数据,并构建漂亮的图形以更好地了解参与者,国家和分数。 使用d3.js和nvd3.js库进行绘制。 使用方法:只需进入USACO竞赛结果页面,...

Global site tag (gtag.js) - Google Analytics