UOJ Logo Luck_ZY的博客

博客

临汾市信息素养测试(小学组)题解

2021-12-05 10:07:43 By Luck_ZY

小朋友们,大家好

这里是赛后题解,希望对你们有帮助

加权分数 只要理解加权分数的定义,这道题就迎刃而解了

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    int y,s,w;
    float a,b,c,h;
    cin>>y>>s>>w;
    cin>>a>>b>>c;
    h=y*a+s*b+w*c;
    printf("%.2f",h);



    return 0;
}

加速度 套公式就好

#include<bits/stdc++.h>
using namespace std;
long long x,a,t;
int main()
{
cin>>x>>a>>t;
if(x==-1)
    cout<<a*t*t/2;
if(a==-1)
cout<<x*2/t/t;
if(t==-1)
cout<<(long long)(round(sqrt(2*x/a)));
return 0;
}

计算器 又是一个水题

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
    long long a, b;
    char c;
    cin>>a>>b>>c;
    if(c=='+')
    cout<<a+b;
    else if(c=='-')
    cout<<a-b;
    else if(c=='*')
    cout<<a*b;
    else if(c=='%' && b)
    cout<<a%b;
    else if(c=='/' && b)
    cout<<a/b;
    else
    cout<<"error";
    return 0;
}

尧尧的作业 //这里借用isansm 的代码

#include<bits/stdc++.h>
using namespace std;
int n,m,k,a[10005],t[10005];
char c;
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
        t[i]=a[i];
    }
    sort(a,a+n);
    for(int i=0;i<n;i++){
        if(t[i]==a[0]){
            cout<<i+1;
            return 0;
        }
    }
    return 0;
}

临汾市信息素养测试(中学组)题解

2021-12-05 09:42:09 By Luck_ZY

中学组前三题很水,有点思路就可以过了

乒乓球题解

#include <iostream>
#include <cstring>
using namespace std;
int win[62503]; 
int w,l;
int main()
{
    char s;
    for(int i=1;cin>>s&&s!='E';i++)//循环读入,当读到字符E结束 
    {
        if(s=='W')win[i]=1; 
        else win[i]=2; 
    }
    //----------------11分制 ----------------
    for(int i=1;1;i++)
    {
        if(win[i]==1)w++;//胜场+1 
        if(win[i]==2)l++;//负场+1 
        if(win[i]==0)//读到0则记录结束,输出记录结束前的分数。 
        {
            cout<<w<<":"<<l<<endl<<endl;
            break;
        }
        if(w-l>=2||l-w>=2)
            if(w>=11||l>=11)//当双方比分相差大于2且一方分数大等于11输出 
            {
                cout<<w<<":"<<l<<endl;
                w=0;//比分清零 
                l=0;
            }
    }
    w=0;//清零,为21分制计算做准备 
    l=0;
    //----------------21分制 ----------------
    for(int i=1;1;i++)//一切同上,唯一区别就是判定从11变为21 
    {
        if(win[i]==1)w++;
        if(win[i]==2)l++;
        if(win[i]==0)
        {
            cout<<w<<":"<<l;
            break;
        }
        if(w-l>=2||l-w>=2)
            if(w>=21||l>=21)//11变为21 
            {
                cout<<w<<":"<<l<<endl;
                w=0;
                l=0;
            }
    }
    return 0;//华丽地结束  ㄟ(▔▽▔)ㄏ
} 

小A的糖果

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long sum=0//计数器,n,x;
    cin>>n>>x;//输入
    long long a[n+1];
    cin>>a[1];//处理第一个单独超限。
    if(a[1]>x)
        {
        sum+=a[1]-x;//增加吃的量
        a[1]=x;//a[i]>=x,要吃的最少,即是a[i]=x;
        }
    for(int i=2;i<=n;i++)
        {
        cin>>a[i];//输入
        if(a[i]+a[i-1]>x)//照例处理
            {
            sum+=a[i]+a[i-1]-x;
            a[i]=x-a[i-1];
            }
        }
    cout<<sum;//输出
    return 0;//养成好习惯
} 

素养测试 此题极淼,结构体是个摆设,想用就用吧

#include<iostream>
using namespace std;
int n;
double ok=0;//用来储存综合分数。这里一定要是浮点型!不然就会WA(我的血泪史啊)
struct xs{//结构体
    int xh,a1,a2;//xh是学号,a1是学业成绩,a2素质拓展成绩。
}a[1010];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].xh>>a[i].a1>>a[i].a2;
        ok=a[i].a1*0.7+a[i].a2*0.3;//计算并储存存综合分数
        if(ok>80&&a[i].a1+a[i].a2>140){//判断
            cout<<"Excellent"<<endl;
        }else{
            cout<<"Not excellent"<<endl;
        }
    }
    return 0;//拜拜!
}

Luck_ZY的机器人 //实际上就是滑雪 搜索的题,对于初中生来讲可能麻烦点???大佬除外

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
int n,m,a[201][201],s[201][201],ans;
bool use[201][201];//这个就是所谓的不需要
int dfs(int x,int y){
    if(s[x][y])return s[x][y];//记忆化搜索
    s[x][y]=1;//题目中答案是有包含这个点的
    for(int i=0;i<4;i++)
    {  int xx=dx[i]+x;
       int yy=dy[i]+y;//四个方向
       if(xx>0&&yy>0&&xx<=n&&yy<=m&&a[x][y]>a[xx][yy]){
          dfs(xx,yy);
          s[x][y]=max(s[x][y],s[xx][yy]+1);
       }
    }
    return s[x][y];
}
int main()
{    
   scanf("%d%d",&n,&m);//同题目的R,C
   for(int i=1;i<=n;i++)
     for(int j=1;j<=m;j++)
       scanf("%d",&a[i][j]);
    for(int i=1;i<=n;i++)//找从每个出发的最长距离
      for(int j=1;j<=m;j++)
        ans=max(ans,dfs(i,j));//取最大值
    printf("%d",ans);
    return 0;
}

CSP/NOIP题库完善中...

2021-11-01 18:20:24 By Luck_ZY

关于如何在OJ上传题目

2021-10-28 16:41:59 By Luck_ZY

传题指导

**Super user的权限是必要的

这是一篇正经公告

首先

在题库中下划至最下端,点击“添加新题”

务必找到翻到题库最后一页的最下端,会出现“New Problem”的空白题,点击进入编辑即可

不要一直点“添加新题”别问我怎么知道的

接下来

你要做的就是点击“管理”,使用markdown语言进行编辑题目

题目要求具体参照公告“传题规范”传送门

**要求好高,yzy已经不会打字了

关于数据的上传

要把以下信息放入zip压缩包中一并上传

1.数据

2.名称为"problem.conf"的文件(具体内容下面会介绍到)

3.名称为"ex_name1.in"的样例输入文件,名称格式一般为"ex_"+"name"+样例序号+".in"(可以不写,在problem.conf中修改样例输入文件为0)

4.名称为"ex_name1.ans"的样例输出文件,名称格式一般为"ex_"+"name"+样例序号+".ans"(或".out")(可以不写,在problem.conf中修改样例输出文件为0)

5.名称为"std.cpp"的空白cpp文件

6.一定要禁用hack 否则还会有"val.cpp"

先编辑好你的测试点,放入一个压缩包中,参照格式"name1.in""name2.in"..."name1.ans""name2.ans"...

其次要重点说明的是problem.conf文件的内容

具体如下

注意一行只能含有一个设置!!!

use_builtin_judger on    //固定格式,表示使用 OJ 自带的评测系统来评测这道题
use_builtin_checker fcmp    //fcmp表示浮点型比对模式,需要具体到题目数据去选择,参考CSDN https://acm.nflsoj.com/blog/wzy/blog/307
n_tests 10        //测试点数
n_ex_tests 1        //额外测试点
n_sample_tests 1    //样例测试点
input_pre ski        //文件前缀,应为测试数据"name1.in""name2.in"...中的name
input_suf in        //文件后缀,应为测试数据"name1.in""name2.in"...中的in
output_pre ski        //文件前缀,应为测试数据"name1.ans""name2.ans"...中的name
output_suf ans        //文件后缀,应为测试数据"name1.ans""name2.ans"...中的ans
time_limit 2        //时间限制,单位s
memory_limit 256    //空间限制,单位MB
output_limit 64        //输出限制,单位MB

把以上内容放入一个压缩包然后"上传数据"即可

建议更改数据时先"清空题目数据"再把新的数据压缩包上传

*上传或者更改数据后务必记得点击"与SVN仓库同步"*!

如上述内容有变动或错误,E-mail 1617022583@qq.com

Luck_ZY 2021.10.28

共 4 篇博客