洛谷——普及练习场 普及组选手可冲刺训练,提高组选手亦可在此巩固基础。(Loading...)

简单的模拟

关卡2-1,6 道题 开始普及组的训练!所谓模拟,就是直接根据题意编写,思维难度简单。

//T1 铺地毯
#include <cstdio>
#define N 10005

int x,y,n,a[N],b[N],g[N],k[N];
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;++i) scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]);
    scanf("%d%d",&x,&y);
    for(int i=n;i>=1;--i)
    if(a[i]<=x&&x<=a[i]+g[i]-1&&b[i]<=y&&y<=b[i]+k[i]-1)
    {printf("%d",i);return 0;}
    printf("-1\n");
    return 0;
}
//T2 进制转换
#include <ctype.h>
#include <cstdlib>
#include <cstdio>

void read(int &x)
{
    x=0;bool f=0;
    char ch=getchar();
    while(!isdigit(ch)) {if(ch==‘-‘) f=1;ch=getchar();}
    while(isdigit(ch)) {x=x*10+ch-‘0‘;ch=getchar();}
    x=f?(~x)+1:x;
}
int m,n,base,ans[10005],num;
int main()
{
    read(n);
    m=n;
    read(base);
    while(abs(n)!=0)
    {
        ans[num]=(abs(base)+n%base)%(abs(base));
        n-=ans[num];
        n/=base;
        num++;
    }
    printf("%d=",m);
    for(int i=num-1;i>=0;i--) if(ans[i]<10) printf("%d",ans[i]);else printf("%c",ans[i]+55);
    printf("(base%d)",base);
    return 0;
}
//T3多项式输出
#include <cstdio>
int n;
int main()
{
    scanf("%d",&n);int k=n+1;
    for(int a;k--;)
    {
        scanf("%d",&a);
        if(a==0) continue;
        if(k==n&&a!=1&&a!=-1) printf("%dx^%d",a,k);
        else if(k==n&&a==1) printf("x^%d",k);
        else if(k==n&&a==-1) printf("-x^%d",k);
        else if(k==0)
        {
            if(a>0) printf("+%d",a);
            else printf("%d",a);
        }
        else if(k==1)
        {
            if(a==1) printf("+x");
            else if(a>0) printf("+%dx",a);
            else if(a<0) printf("%dx",a);
            else if(a==-1) printf("-x");
        }
        else if(a==1) printf("+x^%d",k);
        else if(a>0) printf("+%dx^%d",a,k);
        else if(a==-1) printf("-x^%d",k);
        else printf("%dx^%d",a,k);
    }
    return 0;
}
//T4机器翻译
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stack>

using namespace std;

int m,n,i,head,tail,j,yc=0,ans,xl[1010];
bool cz[1010];
int z[1010];
int main()
{
    cin>>n>>m;
    for(i=0;i<m;++i)
    {
        cin>>xl[i];
        if(cz[xl[i]]==1) continue;
        if(cz[xl[i]]==0&&yc<n) {
            ans++;
            cz[xl[i]]=1;
            z[head++]=xl[i];
            yc++;
        }
        else {
            ans++;
            cz[xl[i]]=1;
            z[head++]=xl[i];
            cz[z[tail++]]=0;
        }
    }
    cout<<ans<<endl;
}
//T5 排座椅
#include <algorithm>
#include <cstdio>
#define N 1005
int min(int a,int b) {return a<b?a:b;}
struct node
{
    int pos,num;
}x[N],y[N];
bool cmp(node a,node b) {return a.num>b.num;}
bool comp(node a,node b) {return a.pos<b.pos;}
int m,n,k,l,d;
int main()
{
    scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);
    for(int xi,yi,pi,qi;d--;)
    {
        scanf("%d%d%d%d",&xi,&yi,&pi,&qi);
        if(xi==pi)
        {
            y[min(yi,qi)].num++;
            y[min(yi,qi)].pos=min(yi,qi);
        }
        if(yi==qi)
        {
            x[min(xi,pi)].num++;
            x[min(xi,pi)].pos=min(xi,pi);
        }
    }
    std::sort(x+1,x+1+n,cmp);std::sort(y+1,y+1+n,cmp);
    std::sort(x+1,x+1+k,comp);std::sort(y+1,y+1+l,comp);
    for(int i=1;i<=k;++i) printf("%d ",x[i].pos);
    printf("\n");
    for(int i=1;i<=l;++i) printf("%d ",y[i].pos);
    return 0;
}
//T6 笨小猴
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;

int cs[122];
bool q[122];
int main()
{
    int maxn=0,minn=999999;
    char s[101];
    gets(s);
    for(int i=0;i<strlen(s);++i)
    {
        cs[s[i]]++;
        q[s[i]]=1;
    }
    for(int i=97;i<=122;++i)
    {
        if(cs[i]>maxn&&q[i]==1) maxn=cs[i];
        if(cs[i]<minn&&q[i]==1) minn=cs[i];
    }
    int d=maxn-minn;
    bool a=1;
    for(int i=2;i<=sqrt(d);++i)
    {
        if(d%i==0)
        {
            a=0;
            break;
        }
    }
    if(a==1&&d!=0&&d!=1)
    {
        cout<<"Lucky Word"<<endl;
        cout<<d;
    }
    if(d==0||d==1||a==0)
    {
        cout<<"No Answer"<<endl;
        cout<<0;
    }
    return 0;
}

所有代码

哎 阿龙要求刷动归 计划又被打乱了 无奈啊 (#‵′)

时间: 2024-10-15 11:05:26

洛谷——普及练习场 普及组选手可冲刺训练,提高组选手亦可在此巩固基础。(Loading...)的相关文章

洛谷 P1807 最长路_NOI导刊2010提高(07)

P1807 最长路_NOI导刊2010提高(07) 题目描述 设G为有n个顶点的有向无环图,G中各顶点的编号为1到n,且当为G中的一条边时有i < j.设w(i,j)为边的长度,请设计算法,计算图G中<1,n>间的最长路径. 输入输出格式 输入格式: 输入文件longest.in的第一行有两个整数n和m,表示有n个顶点和m条边,接下来m行中每行输入3个整数a,b,v(表示从a点到b点有条边,边的长度为v). 输出格式: 输出文件longest.out,一个整数,即1到n之间的最长路径.如

洛谷 P1656 炸铁路

P1656 炸铁路 题目提供者kkksc03 标签图论搜索/枚举洛谷原创 难度普及/提高- 题目描述 因为某国被某红色政权残酷的高压暴力统治.美国派出将军uim,对该国进行战略性措施,以解救涂炭的生灵. 该国有n个城市,这些城市以铁路相连.任意两个城市都可以通过铁路直接或者间接到达. uim发现有些铁路被毁坏之后,某两个城市无法互相通过铁路到达.这样的铁路就被称为key road. uim为了尽快使该国的物流系统瘫痪,希炸毁铁路,已达到存在某两个城市无法互相通过铁路到达的效果. 然而,只有一发炮

洛谷 P1830 轰炸Ⅲ

P1830 轰炸Ⅲ 题目提供者wanglichao1121 标签模拟矩阵洛谷原创 难度普及/提高- 题目背景 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 题目描述 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮. 输入输出格式 输入格式: 第一行,四个整数:n.m.x.y. 以下x行,每行四个整数:x1.y1.x2.y2,表示被轰炸的矩形的左上角坐标和右下角坐标(比如1 3 7 10就表示被轰炸的地方是从(1,

NOIP2011 普及组 T3 洛谷P1309 瑞士轮

今天题做太少,放道小题凑数233 题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长. 本题中介绍的瑞士轮赛制,因最早使用于1895年在瑞士举办的国际象棋比赛而得名.它可以看作是淘汰赛与循环赛的折衷,既保证了比赛的稳定性,又能使赛程不至于过长. 题目描述 2*N 名编号为 1~2N 的选手共进行R 轮比赛.每轮比赛开始前,以及所有比赛结束后,都

[NOIP2014] 提高组 洛谷P2038 无线网络发射器选址

题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 条南北向街道所形成的网格状,并且相邻的平行街道之间的距离都是恒定值 1 .东西向街道从北到南依次编号为0,1,2…128 , 南北向街道从西到东依次编号为0,1,2…128 . 东西向街道和南北向街道相交形成路口,规定编号为x 的南北向街道和编号为y 的东西向街道形成的路口的坐标是(x , y ). 在 某 些 路口存在一定数量的公共

【模板】LIS模板 洛谷P1091 [NOIP2004提高组]合唱队形 [2017年4月计划 动态规划11]

以题写模板. 写了两个:n^2版本与nlogn版本 P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<...<Ti>Ti+1>…>TK(1<=i<=K). 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形. 输入输出格

[NOIP2000] 提高组 洛谷P1018 乘积最大

题目描述 今年是国际数学联盟确定的“2000――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加.活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大. 同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子: 有一个数字串:312, 当N=3,K=1时会有以下两

二分查找or线段树(借教室洛谷1083vijos1782NOIP 2012 提高组 第二天 第二题)

在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然希望编程解决这个问题.我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借.共有m份订单,每份订单用三个正整数描述,分别为dj,sj,tj,表示某租借者需要从第sj天到第tj天租借教室(包括第sj天和第tj天),每天需要租借dj个教室. 我们假定,租借者对教室的大小.地点没有要求.即对于每份

[NOIP2009] 提高组 洛谷P1073 最优贸易

题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路,双向通行的道路在统计条数时也计为 1 条. C 国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价 格不一定相同.但是,同一种商品在同一个城市的买入价和卖出价始终是相同的. 商人阿龙来到 C 国旅游.当他得知同一种商品在不同城市的价格可能会不同这一信息 之后,便决定在旅游的