2015 湘潭大学程序设计比赛(Internet)

湘潭大学2017年下学期程序设计实践-模拟测试3 题解 XTU 1304 ZUMA!http://202.197.224.59/exam/index.php/problem/exam_read/id/1304/exam_id/230思路:暴力乱搞即可。 1.找到2个相邻并且颜色与给你的小球相同的位置,然后我们假设把这个小球放在这里。 2.那么一开始,我们就消掉了2个球。 3.然后我们更新序列,删掉那两个球。判断序列中是否存在3个或以上的球连在一起 阅读详情

前段时间,由于校园网的问题,一直打不开csdn,再加上前阵子的懈怠,我已经很久没写博客了,不过,为了即将到来的省赛和蓝

桥杯,我决定要改过自新,奋发向上。

题目链接:http://202.197.224.59/OnlineJudge2/index.php/Contest/problems/contest_id/38

仙剑奇侠传

题目链接:

水题,不解释。

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int i,n,l,ans=0,x,tmp=100;
        scanf("%d%d",&n,&l);
        for(i=0;i<n;i++)
        {
            scanf("%d",&x);
            if(l>=x)
                ans+=10/(l-x+1);
            if(ans>=tmp)
            {
                tmp+=100;
                l++;
            }
        }
        printf("%d %d\n",l,ans);
    }
    return 0;
}


折叠

题目链接:

http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1226

水题,不解释。

#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int i,l,a=0,b=0;
        string str;
        cin>>str;
        l=str.size();
        if(l==1)
            cout<<str<<endl;
        else if(l%2==0)
        {
            for(i=0;i<l/2;i++)
                a=a*10+str[i]-'0';
            for(i=l-1;i>=l/2;i--)
                b=b*10+str[i]-'0';
            printf("%d\n",a+b);
        }
        else
        {
            for(i=0;i<=l/2;i++)
                a=a*10+str[i]-'0';
            for(i=l-1;i>l/2;i--)
                b=b*10+str[i]-'0';
            printf("%d\n",a+b*10);
        }
    }
    return 0;
}<span style="font-size:24px;">
</span>

Digit

题目链接:

http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1227

当时比赛时,语言理解能力太差了,不知道数码是什么意思,后来经队友解释,才知道是123456789101112...这些数一直排列下

去,然后让你求第n个数,我顿时,就哭晕了。其实要解这题也不是很难,首先模拟位数,找出是哪个位数,然后求解便可。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

typedef long long ll;

int main()
{
    int T,t=9;;
    ll i,num[10],maxn[10];
    num[1]=9;
    maxn[1]=1;
    for(i=2;i<10;i++)
    {
        t*=10;
        num[i]=i*t+num[i-1];
        maxn[i]=maxn[i-1]*10;
    }
    scanf("%d",&T);
    while(T--)
    {
        ll n;
        scanf("%lld",&n);
        if(n<10)
        {
            printf("%lld\n",n);
            continue;
        }
        ll pos=1;
        for(i=1;i<10;i++)
            if(num[i]>=n)
            {
                pos=i;
                n-=num[i-1];
                break;
            }
        int flag=0;
        if(n%pos==0)
            flag=-1;
        long long ans=maxn[pos]+n/pos+flag;
        for(i=0;i<pos;i++)
        {
            if((pos-i)%pos==n%pos)
            {
                printf("%lld\n",ans%10);
                break;
            }
            ans/=10;
        }
    }
    return 0;
}

最小的数

题目链接:

http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1228

以前做过类似的题,不过没说只能相邻的交换。不过这题也不是很难。首先另开一个数组,从小到大排列,然后从首位依次遍历(首位不能为0)与较小数交换,为什么不说最小数呢,因为题目给了交换步数限制,所以你在有限步数内找到较小数然后交换,如果步数还有充裕的,则进行下一位操作,操作过程重复第一步即可。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        char str[1010],tmp[1010];
        int vis[1010];
        int i,j,k,l,p,t1;
        memset(vis,0,sizeof(vis));
        scanf("%s%d",str,&k);
        l=strlen(str);
        strcpy(tmp,str);
        sort(tmp,tmp+l);
        for(i=0;i<l&&k;i++)
        {
            for(j=0;j<l;j++)
            {
                int flag=1;
                if(vis[j]||tmp[j]>=str[i])
                    continue;
                if(!i&&tmp[j]=='0')
                    continue;
                for(p=i+1;p<l;p++)
                {
                    if(str[p]==tmp[j])
                    {
                        if(k<p-i)
                            flag=0;
                        else
                        {
                            k-=(p-i);
                            for(t1=p;t1>i;t1--)
                                swap(str[t1],str[t1-1]);
                            vis[j]=1;
                        }
                        break;
                    }
                }
                if(flag)
                    break;
            }
            //cout<<str<<endl;
            //cout<<k<<endl;
        }
        printf("%s\n",str);
    }
    return 0;
}

烦人的异或

5.说实话,我还不知道这题怎么做呢。先贴上别人的博客,以后再更新。

http://www.cnblogs.com/zhengguiping--9876/p/4461329.html

6.Curious Maze

很蛋疼的一道题,这几天忙着省赛,以后更新。

http://202.197.224.59/OnlineJudge2/index.php/Contest/read_problem/cid/38/pid/1230

人生成就

题目链接:

dp水题。先用dp找出最大数,然后再模拟刚才的过程求出所有的路。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

int a[510][510];
int dp[510][510];
int num[510][510];

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int i,j;
        memset(dp,0,sizeof(dp));
        memset(num,0,sizeof(num));
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                scanf("%d",&a[i][j]);
                dp[i][j]=max(dp[i][j-1],dp[i-1][j])+a[i][j];
            }
        }
        num[1][1]=1;
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                if(a[i][j]==dp[i][j]-dp[i][j-1])
                    num[i][j]+=num[i][j-1];
                if(a[i][j]==dp[i][j]-dp[i-1][j])
                    num[i][j]+=num[i-1][j];
                num[i][j]%=123456;
            }
        }
        printf("%d\n",num[n][n]);
    }
    return 0;
}

8.括号匹配

题目链接:

stack的一个简单运用,思想,我代码里的备注已经很详细了就不多说了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<stack>
#include<map>
#include<algorithm>
using namespace std;

struct node
{
    int index,x,y,r[4];//index表示它的序号,x表示它的属性,y表示它的后序或前序,r[]依次代表小括号,中括号,大括号
}no[100010];

int main()
{
    char str[100010];
    int mm,x;
    map<char,int> m;
    stack<node> s;
    m['(']=1;m['[']=2;m['{']=3;
    m[')']=4;m[']']=5;m['}']=6;//用map存放括号的属性
    while(scanf("%s",str+1)!=EOF)
    {
        memset(no,0,sizeof(no));
        int i;
        for(i=1;str[i];i++)
        {
            no[i].index=i;
            no[i].x=m[str[i]];
            if(m[str[i]]<=3)
                s.push(no[i]);
            else
            {
                node p,t;
                p=s.top();
                s.pop();
                no[i].y=p.index;    //记录它的前序
                p.y=i;
                if(s.size())
                {
                    t=s.top();
                    s.pop();
                    t.r[1]+=p.r[1];
                    t.r[2]+=p.r[2];
                    t.r[3]+=p.r[3];
                    t.r[p.x]++;
                    s.push(t);
                }
                no[p.index]=p;  //赋值前序
            }
        }
        scanf("%d",&mm);
        while(mm--)
        {
            scanf("%d",&x);
            int j;
            j=min(x,no[x].y);   //因为给出的x有可能是后序,所以要判断
            printf("%d %d %d %d\n",no[x].y,no[j].r[1],no[j].r[2],no[j].r[3]);
        }
        printf("\n");
    }
    return 0;
}




湘潭大学2017年下学期程序设计实践-模拟测试2 题解 XTU 1298 Positionhttp://202.197.224.59/exam/index.php/problem/exam_read/id/1298/exam_id/229思路: 1.数据很水,其实可以暴力过(当然,说的是优雅的暴力); 2.可以推数学公式; 3.计算前缀和然后二分查找。根据n的数据范围可知,数组开到1e5足够了: ((1+1e5)*1e5/2) > 1e9#in 阅读详情

相关推荐

你想要的oj全集

这篇文章并非原创,是从同学和网络上的答案整理得出,在此感谢。答案仅供参考,最重要的是有自己的独立思考与总结。 Problem:1100 #include<stdio.h> int main() { int n; double b,h; double s; scanf("%d",&n); while(n–) { scanf("%lf %lf",&b,&h); s=b*h/2; printf("%.1f\n",s); } } Problem:1103 #include<

m0_51456787的博客 6449

常用OJ(online judge)地址

华中科技大学(HUST):http://acm.hust.edu.cn/JudgeOnline/福建信息学奥林匹克:http://www.cfcs.com.cn/fjas/index.htm。ACM的例程和测试数据:http://www.karrels.org/Ed/ACM/华东师范大学(ECNU):http://acm.cs.ecnu.edu.cn/哈尔滨工程大学(HRBEU):http://acm.hrbeu.edu.cn/天津大学(TJU):http://acm.tju.edu.cn/toj/

七爷OK 6506

湘潭大学《C语言程序设计实践》习题整理

湘潭大学计算机科学与技术,网络工程,软件工程《C语言程序设计实践》OnlineJudge网站习题解答!!!

ACM OnlineJudge网站汇总

中国: 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/  华中科技大学(HUST):http://acm.hust.edu.cn/thx/ 浙江大学(ZJU):http://acm.zju.edu.cn/  杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 吉林大学(JLU):http://acm.jlu.edu.cn/j

xyjikl 4496

海思MPP平台千兆以太网驱动集成与测试指南

千兆以太网(GE)是嵌入式视觉系统中音视频流传输与边缘控制的核心物理接口,其底层驱动需兼顾DMA高效调度、中断实时响应与PHY链路稳定性。在Linux嵌入式环境中,GE驱动通常基于net_device框架实现,并深度耦合于SoC专用媒体处理平台(如海思MPP),通过硬件抽象层(HAL)屏蔽寄存器操作,提供零拷贝、RGMII时序适配、描述符环管理等关键能力。技术价值体现在降低CPU负载、保障1080p@30fps实时推流、支持ONVIF/RTSP协议交互及固件远程升级。典型应用场景包括网络摄像机(IPC)、A

weixin_42599908的博客 89

单细胞分析R包monocle3服务器安装教程

由于centos7系统yum只能安装到低版本gdal,而monocle3依赖包需要 gdal>2 版本,从gdal官网下载2.4.4版本编译安装。monocle3的安装是通过cole-trapnell-lab安装的,该包挂在github上,需要通过github先安装leidenbase包,需要提前安装devtools包下载工具。接着利用BiocManager安装相应的依赖包,由于这些包的特殊性,所以不要切换到国内Bio_Mirror镜像,否则会找不到,如果一次不成功,缺啥补啥即可。运行 ldconfig。

qq_36608036的博客 1万+

好用的编程Online Judge网页分享

这是四个我认为比较好的C++Online Judge的网页,给大家分享一下。首页 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)OpenJudge - NOI - 首页。

zjy_goldfish的博客 1591

【Hypermesh】TetraMesh Panel 常用选项详解

结合Hypermesh 2020 帮助文档和自己的一点使用经验,整理了这个博客。

qgm1702的博客 3674

打印菱形c语言 acm,ACM-–模拟打印–-湘大OJ 1086--菱形--水

湘大oj地址:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1086菱形时间限制:1000ms | 内存限制:65536 KBDescription小明现在是湘潭大学10级计算机系的学生。他的C语言学的还算可以,但是今天老师布置的一道课后作业题却把他难住了。题目的意思是要在一个N*N(N为奇数)的菱形方格中用字符’*...

weixin_39677027的博客 537

ubuntu18.04安装R——无法连接上 dl.google.com:80 (6.6.6.6),连接超时&&E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

安装R的时候,sudo apt update 的时候出现错误: 查资料要修改/etc/apt/sources.list.d/google-chrome.list 文件 原来是: deb http://dl.google.com/linux/chrome/deb/ stable main 改为: deb [arch=amd64] http://dl.google.com/linux/chrom...

许希律的博客 4347

Ubuntu新手必看:3种方法快速查看和编辑JSON文件(附jq安装指南)

本文为Ubuntu新手详细介绍了三种查看和编辑JSON文件的核心方法:命令行利器jq、灵活脚本Python以及直观的图形化编辑器(如VS Code)。文章重点解析了jq的安装与核心用法,并对比了各方案的优缺点,帮助用户根据快速查询、复杂处理或直观编辑等不同场景,选择最合适的工具,从而高效处理JSON数据。

weixin_29229989的博客 415

Echo (湘潭大学OJ)

“湖南华园科技杯”第4届湘潭市程序设计比赛暨2012ACM/ICPC湘潭邀请赛(Semilive) http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1144 Echo Accepted : 135   Submit : 469 Time Limit : 1000 MS

hackerzchao 8594

uniapp - 强力解决H5网页浏览器跨域问题,如何解决uniapp请求接口在浏览器跨域问题,UniApp H5 跨域代理配置详细教程完美解决所有uniapp跨域(调用第三方接口或服务器api跨域)

uni-app 跨域,uniApp解决h5跨域问题,解决uni-app请求接口在浏览器跨域问题,uni.request请求跨域问题解决方案,uni-app-跨域解决方法,彻底解决uniapp发布为H5的跨域问题,uniapp H5页面设置跨域请求_uniapp h5跨域配置,uniapp开发 H5 解决跨域问题,uniApp请求解决跨域问题,uniapp request如何实现前端请求跨域,解决uniapp调试过程中的请求跨域和环境配置,Uniapp调用外部api接口跨域请求,uni-app发布H5页面跨域

🏆 前端领域优质创作者 5352

2015 湘潭大学程序设计比赛(Internet) 全解析 + AC代码

一到搜索卡死人... 1. 两个变量记录等级和经验值就好. int main(){ int T; scanf("%d",&T); while(T--){ int n,l; int jy=0; int sum = 0; scanf("%d%d",&n,&l); for(int i =

gg_gogoing的专栏 2110

物联网系列③——基于ESP8266与点灯科技平台的温湿度计设计(接入小爱同学)

物联网系列③——基于ESP8266与点灯科技平台的温湿度计设计(接入小爱同学)一、设计目标二、电路展示三、存在的问题四、代码五、需要注意的问题 一、设计目标       前一阵子偶然接触到点灯科技平台,产生了制作一块ESP8266电路板,拥有以下功能: 使用CH340对ESP8266进行程序下载 使用DHT11进行温湿度数据读取 使用点灯科技平台接入物联网,可通过手机APP获得室内温湿度 接入小爱同学,通过语音获取室内温湿度信息 Mico US

weixin_43278295的博客 8852

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Digit【2015 湘潭大学程序设计比赛(Internet)】

Click to view the problem思路:这道题我就是直接算,给定的字符串是从1开始的,可以确定有9个一位数,90个两位数,900个三位数,9000个四位数…….so,计算一下所给的n包含的有几位数,并计算出最后一个数。具体步骤看代码。。。#include <iostream> #include <cstdio> #include <cstring>using namespace st

工厂搬砖的代码小白 723

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

2015 湘潭大学程序设计比赛(Internet)Problem D:最小的数

这个题没有什么算法,就是用俩嵌套for循环,然后要注意一下边界条件就能A,比赛的时候WA了好几次,要么是忘了memset,要么ct忘了重置为0,要么就是j写成i,总之非常egg pain,犯了好多低级错误,不在状态啊。 我解释一下我的代码和思路把。 我这个类似于贪心算法,就是每次都把整个数列扫描一遍,用num[0~9]标记出0~9这10个数第一次出现的位置,然后从0开始往9for循环,如果最小的数的位置与当前要确定的位置距离小于等于k,那么就可以把这个数组挨个往后挪,然后把那个小的数放到当前操作的位置,k-

世靖的码场 1124

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

2015 湘潭大学程序设计比赛(Internet)--D题-最小的数

题目描述 给你一个n位数,每次操作可以选该数任意的相邻两位进行交换,如果最多可以操作k次,那么最终可以得到的最小的数是什么 (n位且不能含前导零)? 输入 有多组测试数据,第一行为数据个数T(T 输出 最终能得到的最小的数。 样例输入 2 321654987 1 321654987 2 样例输出 231654987 132654987 这种类型的题自己遇到几次了,

NaCl__的博客 1024

2015 湘潭大学程序设计比赛(Internet)部分题解,其中有一个题与NYOJ1057很像,贪心过~~

仙剑奇侠传                 祝玩的开心                                                                                                                        A的满意                    Time Limit : 2

NYIST_TC_LYQ的博客 1216

2015 湘潭大学程序设计比赛(Internet)部分题解,其中有一个题与NYOJ1057很像,贪心过~~...

仙剑奇侠传 祝玩的开心 A的满意 Time Limit : 200...

weixin_30487317的博客 156

2015 湘潭大学程序设计比赛(Internet)--D题-最小的数 2015-05-13 20:55 51人...

题目描述 给你一个n位数,每次操作可以选该数任意的相邻两位进行交换,如果最多可以操作k次,那么最终可以得到的最小的数是什么 (n位且不能含前导零)? 输入 有多组测试数据,第一行为数据个数T(T<=10); 每组数据占一行,包含一个数(不超过1000位)和k(0<=k<=1000),中间用空格隔开; 输出 最终能得到的最小的数。 样例输入 2 321654...

weixin_30511107的博客 80

2018年湘潭大学程序设计竞赛 E题

链接:https://www.nowcoder.com/acm/contest/105/E来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述作为一个标准的吃货,mostshy又打算去联建商业街觅食了。混迹于商业街已久,mostshy已经知道了商业街的所有美食与其价格,而且他给每种美食都赋予了...

Evildoer_llc的博客 988

【湘大oj】1173-(立方和)

立方和[ Submit Code ] [ Top 20 Runs ] [ Runs Status ] Acceteped : 193 Submit : 1307 Time Limit : 1000 MS Memory Limit : 65536 KBDescription题目描述请计算a到b的立方和。输入第一行是一个整数K,表示样例的个数。 以后每行一个测试用例,为两个整数

飞翔的魔小酥的博客 1004
上一篇: HDU5142 NPY and arithmetic progression && BestCoder Round #23 1002
下一篇: 2010年山东省第一届ACM大学生程序设计竞赛——Clockwise
yphacker
博客等级 码龄12年 199粉丝 540原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值