oj

第15周 oj Problem C: 字符串逆序输出

萝らか妹 提交于 2019-12-08 07:01:04
问题及代码: /*Copyright(c)2016,烟台大学计算机学院 all rights reserved. 作者:曹欣宇 完成日期:2016年12月12日 题目描述 编写一个函数,功能是使输入的字符串逆序输出 输入 输入一串字符串,注意字符串中不要有空格。 输出 输出该字符串的逆序。 样例输入 ABCDEFG 样例输出 GFEDCBA*/ #include<stdio.h> #include<string.h> int main() { char str[100]; scanf("%s",str); int len; len=strlen(str); int fuction(char *, int); fuction(str,len); return 0; } int fuction(char * str, int len) { int i; for(i=len-1;i>=0;i--) { printf("%c",str[i]); } return 0; } 运行结果: 知识点总结: 通过学习,复习了函数的使用,并学会了使用strlen函数求字符串长度。 学习心得: 此题不难,主要是熟悉strlen函数 来源: CSDN 作者: 青藤麻瓜、 链接: https://blog.csdn.net/cxy201658503125/article/details/53586144

OJ字符串的倒序输出

ε祈祈猫儿з 提交于 2019-12-08 07:00:47
Description 将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 Input 输入包括一行。第一行输入的字符串。 Output 输出转换好的逆序字符串。 Sample Input I am a student Sample Output tneduts a ma I Description 将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 Input 输入包括一行。第一行输入的字符串。 Output 输出转换好的逆序字符串。 Sample Input I am a student Sample Output tneduts a ma I #include<iostream> #include<cstdio> using namespace std; int main() { int i=0; char str[100]; gets(str); while (i<100) { if(str[i]=='\0') break; i++; } for(i=i-1;i>=0;i--) cout<<str [i]; return 0; } 来源: CSDN 作者: fanxingyue 链接: https://blog.csdn.net/a716121/article/details/42555177

九度OJ 1209 最小邮票数 -- 动态规划

落爺英雄遲暮 提交于 2019-12-07 12:23:35
题目地址: http://ac.jobdu.com/problem.php?pid=1209 题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值。 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可。 输入: 有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M<100。然后是一个数N,N〈20,表示有N张邮票。接下来是N个正整数,分别表示这N张邮票的面值,且以升序排列。 输出: 对于每组数据,能够凑成总值M的最少邮票张数。若无解,输出0。 样例输入: 10 5 1 3 3 3 4 样例输出: 3 来源: 2007年清华大学计算机研究生机试真题 状态转移方程: dp[j]=min(dp[j], dp[j-stamp[i]]+1); #include <stdio.h> #define INF 10000 int min (int a, int b){ return (a < b) ? a : b; } int MinNumOfStamp (int stamp[], int m, int n){ int dp[101]; int i, j; for (i=1; i<=m; ++i) dp[i] = INF; dp[0] = 0; for (i = 0; i < n; ++i){ for (j = m; j >=

#OJ没有一次AC题解03-010315

六月ゝ 毕业季﹏ 提交于 2019-12-06 23:20:28
题目03 1.3编程基础之算术表达式与顺序执行 15:苹果和虫子 描述 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果? 输入 输入仅一行,包括n,x和y(均为整数)。输入数据保证y <= n * x。 输出 输出也仅一行,剩下的苹果个数 错误代码: #include <cstdio> using namespace std; int main() { int n,x,y,t; scanf("%d %d %d",&n,&x,&y); t = n-(y/x+1); printf("%d",t); return 0; } Tips:直接整除的情况无需+1 正确代码: #include<cstdio> #include<cmath> using namespace std; int main() { int n,x,y,a,b; scanf("%d %d %d",&n,&x,&y); b=y/x; if(y%x!=0) { b++;//有没被吃完的苹果,题目求完整苹果数 } a = n - b; printf("%d",a); return 0; } 来源: https://www.cnblogs.com/YINXXiao/p/11921014.html

小鑫数数儿 (sdut oj)

元气小坏坏 提交于 2019-12-06 18:03:08
小鑫数数儿 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 某天小鑫忽然得到了许多的数字,他很好学,老师给他布置了一个任务,求出这些数字中,小于他们平均数、等于他们平均数、大于他们平均数的数字的数量是多少。(对于出现的平均数,保证都是整数,不会出现浮点数) Input 对于每次的输入,第一行一个整数 接下来的一行,输入 M(0 <= M <= 100) 。 Output 第一个数是这些数字中小于他们平均数的数字的个数,第二个数为等于他们平均数的数字的个数,第三个数为大于他们平均数的数字的个数。 Example Input 3 1 2 3 5 2 4 4 5 5 Example Output 1 1 1 1 2 2 Hint Author GLSilence 参考代码 #include<stdio.h> int main() { int num[10] = {0}; int n; int i; int a,b,c; int sum,p; while(~scanf("%d",&n)) { i = 0; sum = 0; a = 0; b = 0; c = 0; for(i = 0; i < n; i++) { scanf("%d",&num[i]); } for(i = 0; i < n; i++) { sum

蓝桥杯练习-各大OJ平台介绍

隐身守侯 提交于 2019-12-06 10:27:17
校赛准备的不够充分,简单题失分太遗憾, 有幸参加到省赛,这次先码一下练习平台,等学期结束忙完之后好好练习! 1.题库与网站资源 题库-在线提交系统(Online Judge)简介 下面是几个比较大的在线提交系统(OnlineJudge)里面有大量历年的竞赛题目,注册一个ID,然后用自己熟悉的语言(一般有Pascal/C/C++/Java)写好源代码提交即可,会实时返回信息告诉你是否正确。采用黑箱测试,系统里有一套标准的输入输出数据(对外保密,而且通常数据很多很怪),你的程序的输出和标准输出完全符合即可。 常见的返回信息有 AC(Accepted,通过)、WA(Wrong Answer,输出有错误)、TLE(Time LimitExceeded,超时)、MLE(Memory Limit Exceeded,内存溢出)、RE(RuntimeError,发生实时错误)等,只有AC了才算做对一题。这里只是一个简要介绍,请大家在做题时先看看各网站上的FAQ,Enjoy it 北京大学 Online Judge(POJ) <http://acm.pku.edu.cn/JudgeOnline/>建立较晚,但题目加得很快,现在题数和ZOJ不相上下,特点是举行在线比赛比较多,数据比ZOJ上的要弱,有时候同样的题同样的程序,在ZOJ上WA,在POJ上就能AC。不过感觉pku的题目要难很多

Comet OJ - Contest #12 D

戏子无情 提交于 2019-12-06 04:45:54
题目描述 求(x,y)的对数满足x∈[0,a],y∈[0,b],x⊕y=0且|x-y|<=m 题解 一种比较sb的做法是考虑x-y的借位,根据借位以及差值进行转移 还有一种比较正常的做法,假设一开始x=0,y=n,那么就需要把y的某一些1移到x上,也就是对于(x-y)加上2^(i+1) 设加的数之和为s,那么需要保证|s-n|<=m,也就是n-m<=s<=n+m 注意是当n的第i位为1时才可以加上2^(i+1),把上界右移一位后就变成加上2^i 设f[i][0/1][0/1][0/1],表示当前到第i位,x、y、s是否顶住上界 枚举第i位的xy所选,使得x[i]^y[i]=n[i]且新的s不会越界即可 code sb版 #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #define fo(a,b,c) for (a=b; a<=c; a++) #define fd(a,b,c) for (a=b; a>=c; a--) #define min(a,b) (a<b?a:b) using namespace std; int a[60]; int b[60]; int x[60]; int y[60]; long long f[61][2][2][2][2]; int T,i,j,k

江理oj 摸底测试 解题报告

醉酒当歌 提交于 2019-12-06 00:47:42
http://oj.jxust.edu.cn/contest?id=1702 A ::: 思路::开一个数组暂时记录一下每个杯子加的水量(假设无穷大);再遍历一便数组如果大于当前杯子的容量,则将多余的水量移至下一水杯 1 #include<bits/stdc++.h> 2 #define ll long long 3 using namespace std; 4 const int maxn=1e5+5; 5 6 ll a[maxn],b[maxn]; 7 int n,m; 8 int main() 9 { 10 int t; 11 scanf("%d",&t); 12 while(t--){ 13 //memset(b,0,sizeof(b)); 14 scanf("%d%d",&n,&m); 15 for(int i=1;i<=n;i++){ 16 scanf("%lld",&a[i]); 17 b[i]=0; 18 } 19 while(m--){ 20 int x; 21 ll y; 22 scanf("%d%lld",&x,&y); 23 b[x]+=y; 24 } 25 ll jw=0; 26 for(int i=1;i<=n;i++){ 27 if(b[i]+jw>a[i]){ 28 jw=b[i]+jw-a[i]; 29 b[i]=a[i]; 30 } 31

Comet OJ - Contest #15 题解

让人想犯罪 __ 提交于 2019-12-05 09:57:50
传送门 \(A\) 咕咕 const int N=1005; int a[N],n,T; int main(){ for(scanf("%d",&T);T;--T){ scanf("%d",&n); fp(i,1,10)a[i]=n%10,n/=10; R int fl=1; fp(i,1,9)if(a[i]<a[i+1]){fl=0;break;} if(!fl)puts("Impossible"); else printf("%d\n",a[1]); } return 0; } \(B\) 枚举内心,那么三个点合法当且仅当到这个内心距离相同,组合数算一下就行了 typedef long long ll; const int N=2005; int x[N],y[N],n;ll res,dis[N]; inline ll d(R int i,R int j){return 1ll*(x[i]-x[j])*(x[i]-x[j])+1ll*(y[i]-y[j])*(y[i]-y[j]);} inline ll calc(R int x){return 1ll*x*(x-1)*(x-2)/6;} int main(){ scanf("%d",&n); fp(i,1,n)scanf("%d%d",&x[i],&y[i]); fp(i,1,n){ R int tot=0; fp(j,1,n

#OJ没有一次AC题解02-010314

北战南征 提交于 2019-12-05 09:47:45
题目02 1.3编程基础之算术表达式与顺序执行 14:大象喝水 描述 一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。 输入 输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。 输出 输出一行,包含一个整数,表示大象至少要喝水的桶数。 错误代码: #include <cstdio> using namespace std; int main() { int h,r,v,n; scanf("%d %d",&h,&r); v = 3.14159 * r * r * h; n = 20000/v; if(20000%v == 0) { printf("%d",n); } else { printf("%d",n+1); } 错误原因: 没复制全... 也许是手抽筋(?) 正确代码: #include <cstdio> using namespace std; int main() { int h,r,v,n; scanf("%d %d",&h,&r); v = 3.14159 * r * r * h; n = 20000/v+1; printf("%d",n); return 0; } 来源: https://www.cnblogs.com/YINXXiao