精华内容
下载资源
问答
  • 洛谷题解

    千次阅读 2017-11-02 01:44:09
    小玉在游泳 ... 提交 题解    提示:收藏到任务计划后,可在首页查看。 最新讨论更多讨论 求指点小玉在游泳 改着改着,就A了。(为什么… 那里错了 求助 求助 思维定势了,求指点! 推

    小玉在游泳

      • 14.7K通过
      • 29.9K提交
    • 题目提供者yeszy 管理员
    • 标签
    • 难度入门难度
    • 时空限制1s / 128MB

      题解     

    题目描述

    小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。

    输入输出格式

    输入格式:

    输入一个数字(不一定是整数,小于100m),表示要游的目标距离。

    输出格式:

    输出一个整数,表示小玉一共需要游多少步。

    源程序:

    #include <bits/stdc++.h>

    using namespace std;

    int main()

    {

    double x,s=2,i=0;

    cin>>x;

    while (x>0)

    {

    i+=1;

    x=x-s;

    s=s*98/100;

    }

    cout<<i<<endl;

    return 0;

    }




    展开全文
  • 洛谷题解(持续更新)

    千次阅读 2019-03-02 12:35:36
    洛谷题解(持续更新) P1067 多项式输出 思路:本题没有难度系数,但是需要把所有情况考虑到。我是按照指数分类,再对系数的不同情况进行讨论。基本分为 -1, 0, 1 三个点段。 1.指数为 0 :根据是否为第一...

    洛谷题解(持续更新)

    P1067 多项式输出

    在这里插入图片描述
    在这里插入图片描述
    思路:本题没有难度系数,但是需要把所有情况考虑到。我是按照指数分类,再对系数的不同情况进行讨论。基本分为 -1, 0, 1 三个点段。
    1.指数为 0 :根据是否为第一个出现的项决定+,其余情况只输出系数。
    2.指数为1:根据是否为第一个出现的项决定+,其余情况根据系数是否为1输出X或系数和X的组合。
    3.指数大于1:根据是否为第一个出现的项决定+,其余情况根据系数是否为1输出X^ 的i次组合或系数和X^的i次组合。

    #include<iostream>
    #include<cmath>
    using namespace std;
    
    int main()
    {
    	int number[113], n, flag =1;
    	cin>>n;
    	for(int i = n; i>=0; i--)
    	{
    		cin>>number[ i ];
    	}
    	for(int  i = n; i>=0; i--)
    	{
    		if(i == 0)
    		{
    			if(number[i]>0&&!flag)
    				cout<<"+"<<number[i];
    			else if(number[i]!=0)
    				cout<<number[i];
    		}
    		else if(i == 1)	
    		{
    			if((number[i]>1 && flag) ||number[i]<-1 )
    			{
    				cout<<number[i]<<"x";
    				flag = 0;
    			}
    			else if(number[i]==1 && flag)
    			{
    				cout<<"x";
    				flag = 0;
    			}
    			else if(number[i]==-1)
    			{
    				cout<<"-x";
    				flag = 0;
    			}
    			else if(number[i]>1 && !flag)
    			{
    				cout<<"+"<<number[i]<<"x";
    			}
    			else if(number[i]==1 && !flag)
    			{
    				cout<<"+x";
    			}			
    		}		
    		else
    		{
    			if((number[i]>1 && flag) ||number[i]<-1 )
    			{
    				cout<<number[i]<<"x^"<<i;
    				flag = 0;
    			}
    			else if(number[i]==1 && flag)
    			{
    				cout<<"x^"<<i;
    				flag = 0;
    			}
    			else if(number[i]==-1)
    			{
    				cout<<"-x^"<<i;
    				flag = 0;
    			}
    			else if(number[i]>1 && !flag)
    			{
    				cout<<"+"<<number[i]<<"x^"<<i;
    			}
    			else if(number[i]==1 && !flag)
    			{
    				cout<<"+x^"<<i;
    			}
    		}	
    	} 
    	return 0;
    }
    

    P1540 机器翻译

    在这里插入图片描述
    在这里插入图片描述

    思路:本题考察的是先进先出的思想,可以使用队列链表等数据结构解出。这个也是成FIFO内存置换算法的思想。由于数据量不大,我采用的是数组形式。
    1.定义内存数组和数据数组。
    2.每次遍历读入数据,比较是否在内存中。通过first变量的变换确定每一次置换的位置。记录置换次数
    3.输出结果。

    #include<iostream>
    #include<stdlib.h>
    #include<string.h>
    #define Max_size 1100
    using namespace std ;
    
    int main()
    {
    	int array[ Max_size ], store[120], number = 0;
    	int M, N, flag = 1, first = 0;  //flag表示是否找到这个数据
    	cin>>M>>N;
    	for(int i = 0; i <= N; i++) array[i] = -1;
    	for(int i = 0; i <= M; i++) store[i] = -1;
    	for( int i = 0; i < N ; i++)
    	{
    		cin>>array[i];
    		for(int j = 0; j< M; j++)
    		{
    			if(store[ j ] == array[ i ])
    				flag = 0;
    		}
    		if(flag == 1)
    		{
    			store[first] = array[i];
    			first = (first + 1)%M;
    			number ++;
    		}
    		flag = 1;
    	}
    	cout<<number;
    }
    

    P1563 玩具谜题

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    思路:本题考察的是一种方向转换问题。可以使用双链表,数组或者结构体等数据结构。考虑到测试数据的大小和链表操作的繁琐性。本题使用了结构体数组,根据题目操作进行编码。本题关键是仔细画图,确定每次数组下标的加减,把逆时针模拟为反向顺时针,类似补码的思想。
    1.定义结构体数组。
    2.遍历读入玩具数据,读入操作指令。
    3.根据玩具朝向和指令方向通过取模方式模拟玩具圈内的循环过程。
    4.指令输入结束,输出结果。

    #include<iostream>
    using namespace std;
    typedef struct toy{
    	int a;
    	char name[11];	
    }Toy;
    int main()
    {
    	Toy toys[100010];
    	int n, m, derect,number;
    	cin>>n>>m;
    	for(int i = 0; i<n ;i++)
    		cin>>toys[i].a>>toys[i].name;
    	int j = 0;
    	while(m > 0)
    	{
    		cin>>derect>>number;
    		if(derect == 0)
    		{
    			if(toys[j].a==1)
    				j = (j+number)%n;
    			else
    				j = (j+n-number)%n;				 
    		}
    		else
    		{
    			if(toys[j].a==0)
    				j = (j+number)%n;
    			else
    				j = (j+n-number)%n;	
    		}
    		m--;
    	}
    	cout<<toys[j].name;
    } 
    

    P1031均分纸牌

    在这里插入图片描述
    在这里插入图片描述

    思路:本题考察的是一种算法思路。想明白总体的思想,即可通过。(该思路借鉴了洛谷题解的大佬!)
    1.定义变量。
    2.计算均值。
    3.计算纸牌数值与均值的差值。
    4.遍历找到均分不为0移动次数即可加一。input[i+1] += input[i]

    #include<iostream>
    #include<cstdio>
    
    using namespace std;
    int main ()
    {
    	int number, ave, tot= 0, ans = 0;
    	int input[102];
    	cin>>number;
    	for(int i = 0;i <number; i++) 
    	{	
    		cin>>input[i]; 
    		tot += input[i];
    	}
    	ave = tot/number;
    	for(int i = 0; i<number; i++) 
    		input[i] -= ave;
    	for(int i = 0; i<number; i++)
    	{
    		if(input[i] == 0)
    			continue;
    		else
    		{
    			input[i+1] += input[i];
    			ans ++;
    		}
    	}
    	cout<<ans;
    }
    

    P1098 字符串的展开

    在这里插入图片描述
    在这里插入图片描述

    思路:这道题做了很久,后来发现是自己的思考方向不对,做这样的体型应该遵照题意。

    1.根据数据规格定义好变量和参数。此处我使用字符串存储,灵活度较低,可以优化。使用字符串要预先计算长度,比如伸展的最大范围:a~z,p2=8的时候就是25* 8* 100 = 20000,即答案的范围。
    2.读题,分割条件。同为字母或者数字且分隔符左小于右才会发生字符串的展开。
    3.分割小条件控制好输出。

    代码:

    #include<iostream>
    #include<ctype.h>
    using namespace std;
    char word[102];
    char ans[20002];
    char change(int p, char x)
    {
    	if(p==1)
    	{
    		if('A'<=x&&'Z'>=x)
    			return x+32;
    		else 
    			return x;
    	}
    	else if(p==2)
    	{
    		if('a'<=x&&x<='z')
    			return x-32;
    		else 
    			return x;		
    	}
    	else
    		return '*';
    	
    }
    
    int main()
    {
    	int p1, p2, p3;
    	cin>>p1>>p2>>p3;
    	cin>>word;
    	int i=0,num=0;
    	char ch;
    	while(word[i]!='\0')
    	{
    		if(i!=0&&word[i]=='-')
    		{
    			
    			if(((isdigit(word[i-1])&&isdigit(word[i+1]))||(isalpha(word[i-1])&&isalpha(word[i+1])) )&&(word[i-1]<word[i+1]))
    			{
    				//cout<<"digit: "<<isdigit(word[i-1])<<isdigit(word[i+1])<<"  letter: "<<isalpha(word[i-1])<<isalpha(word[i+1])<<" "<<word[i-1]<<" "<<word[i+1]<<endl;
    				if(p3==1)
    				{
    					
    					ch = word[i-1]+1;
    					while(ch!=word[i+1])
    					{
    						for(int i = 0; i<p2; i++)
    						{
    							ans[num]=change(p1,ch);
    							num++;
    						}
    						ch++;
    					}
    				}
    				else
    				{
    					ch = word[i+1]-1;
    					while(ch!=word[i-1])
    					{
    						for(int i = 0; i<p2; i++)
    						{
    							ans[num]=change(p1,ch);
    							num++;
    						}
    						ch--;
    					}
    				}
    			}
    			else
    			{
    				ans[num]='-';
    				num++;
    			}
    		}
    		else
    		{
    			ans[num]= word[i];
    			num++;
    		}
    		i++;
    	}
    	ans[num] = '\0';
    	cout<<ans;
    }
    
    展开全文
  • 洛谷题解,很详细+动画图文

    千次阅读 2020-11-05 21:05:24
    个人感言:从未见过如此详细的题解,动画、图文结合,适合任何水平的选手。尤其是特别适合自学的。有这么详细的题解,就算没有老师也没问题。甚至比我以前的老师讲的都详细。 为什么要转载: 动画、图文结合。 我...

    内容来源于微信公众号:大神编程。已经过原文作者授权。

    更新时间:2020-11-5

    官方今天开始更新了,很期待!

    个人感言:从未见过如此详细的题解,动画、图文结合,适合任何水平的选手。尤其是特别适合自学的。有这么详细的题解,就算没有老师也没问题。甚至比我以前的老师讲的都详细。

    为什么要转载:

    • 动画、图文结合。
    • 我看了部分文章,一些我觉得很简单的题,但从中学到了以前没有学过的知识点和细节,重点是从中学习别人思维方式。
    • 让更多的同学能学到更多的知识。

    官方的QQ群:893157498(已取消,有微信群)

    【入门1】顺序结构

    P5703 【深基2.例5】苹果采购

    101【入门2】分支结构
    102【入门3】循环结构
    103【入门4】数组
    104【入门5】字符串
    105【入门6】函数与结构体
    106【算法1-1】模拟与高精度
    107【算法1-2】排序
    108【算法1-3】暴力枚举
    109【算法1-4】递推与递归
    110【算法1-5】贪心
    111【算法1-6】二分查找与二分答案
    112【算法1-7】搜索
    113【数据结构1-1】线性表
    114【数据结构1-2】二叉树
    115【数据结构1-3】集合
    116【数据结构1-4】图的基本应用
    117【数学1】基础数学问题
    200【算法2-1】前缀和与差分
    201【算法2-2】线性复杂度优化 / 离散化
    202【算法2-3】分治
    203【算法2-4】倍增
    204【算法2-5】搜索剪枝策略
    205【数据结构2-1】二叉堆与 ST 表
    206【数据结构2-2】线段树与树状数组
    207【图论2-1】基础树上问题
    208【图论2-2】最短路
    209【图论2-3】最小生成树
    210【图论2-4】连通性问题
    211【动态规划1】动态规划的引入
    212【动态规划2】线性状态动态规划
    213【动态规划3】区间与环形动态规划
    214【动态规划4】树与图上的动态规划
    215【动态规划5】状态压缩动态规划
    216【数学2-1】整数与除数
    217【数学2-2】组合数学与计数
    218【数学2-3】概率与统计
     

    展开全文
  • 洛谷题解: P1130 红牌

    2021-01-24 00:41:21
    洛谷题解: P1130 红牌 题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌。获得红牌的过程是相当复杂 ,一共包括NNN个步骤。每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件。为了加快...

    洛谷题解: P1130 红牌

    题目描述

    某地临时居民想获得长期居住权就必须申请拿到红牌。获得红牌的过程是相当复杂 ,一共包括NNN个步骤。每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件。为了加快进程,每一步政府都派了MMM个工作人员来检查材料。不幸的是,并不是每一个工作人员效率都很高。尽管如此,为了体现“公开政府”的政策,政府部门把每一个工作人员的处理一个申请所花天数都对外界公开。

    为了防止所有申请人都到效率高的工作人员去申请。这M×N个工作人员被分成M个小组。每一组在每一步都有一个工作人员。申请人可以选择任意一个小组也可以更换小组。但是更换小组是很严格的,一定要相邻两个步骤之间来更换,而不能在某一步骤已经开始但还没结束的时候提出更换,并且也只能从原来的小组I更换到小组I+1,当然从小组MMM可以更换到小组1。对更换小组的次数没有限制。

    例如:下面是333个小组,每个小组444个步骤工作天数:

    小组1 : 2,6,1,8

    小组2 : 3,6,2,6

    小组3 : 4,2,3,6

    例子中,可以选择小组1来完成整个过程一共花了2+6+1+8=17天,也可以从小组2开始第一步,然后第二步更换到小组3,第三步到小组1,第四步再到小组2,这样一共花了3+2+1+6=12天。你可以发现没有比这样效率更高的选择。

    你的任务是求出完成申请所花最少天数。

    输入格式:

    第一行是两个正整数N和M,表示步数和小组数。接下来有M行,每行N个非负整数,第i+1(1≤i≤M)行的第j个数表示小组i完成第j步所花的天数,天数都不超过1000000。

    输出格式:

    一个正整数,为完成所有步所需最少天数。

    样例:

    输入:

    4 3 
    2 6 1 8
    3 6 2 6
    4 2 3 6 
    

    输出:

    12
    

    分析:

    最近在学dp,我比较愚笨。。虽然思想大概了解但是总是建不出模型来,还是要多锻炼。

    这道题的意图很明确,要求在每一步做出的选择都要是正确的 (这里的正确指的是做出选择后的这个方向是所有选择中天数最小值最小的) 。那么肯定不能从前往后贪心选择,需要从后往前dp。

    所以思路就是从倒数第二个元素开始,计算每一个备选项的天数最小值,然后循环到第一个元素(第一步),第一步的M组中最小的那个就是结果了。

    AC代码:

    #include<iostream>
    #include<string>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    
    using namespace std;
    
    int main()
    {
        int m,n;
        int ans = 0x3f3f3f3f;
        int a[2001][2001] = {0};
    
        cin>>n>>m;
        for(int i = 0;i < m;i++)
        {
            for(int j = 0;j < n;j++)
            {
                cin>>a[i][j];
            }
        }
        for(int j = n-2;j >= 0;j--)
        {
            for(int i = 0;i < m;i++)
            {
                a[i][j] = min(a[(i+1)%m][j+1], a[i][j+1]) + a[i][j];
            }
        }
        for(int i = 0;i < m;i++)
        {
            ans = min(ans,a[i][0]);
        }
        cout<<ans<<endl;
    }
    
    展开全文
  • 题目概况 ...难度:普及/提高- 题目分析 一道数学题。 首先我们知道,十进制转N进制需要采用除法取余,倒序输出的方法。但是题目中说明:使用的是负进制。 它的转换方法和正整数进制相同(详情移步度娘),但我们就会...
  • 我个人很喜欢的一个洛谷综合题单 好了,我们开始。 第一题,求两个整数的和。一看,这道题不就是P1001抄袭过来的一样的吗? 好,这道题很简单,就是注意最底下的说明/提示: 对于 100% 的数据,输入的整数在[1,4×10...
  • 一、题目描述 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天...
  • 洛谷题解目录

    万次阅读 多人点赞 2018-02-14 01:34:32
    关卡1-1 洛谷的第一个任务 超级玛丽游戏(洛谷-P1000):点击这里 A+B Problem(洛谷-P1001):点击这里 小玉买文具(洛谷-P1421):点击这里 小鱼的游泳时间(洛谷-P1425):点击这里 关卡1-2 顺序与分支 ...
  • 本蒟蒻的题解 入门的题没一道不水,这题可以简单粗暴的直接求。 代码已随时待命 ```cpp #include<bits/stdc++.h> using namespace std; int main(){ int a,b,c,d=0; cin>>a>>b>>c; d+=a...
  • 洛谷题解 P1308 统计单词数 刚学C语言的时候做这题,总是莫名奇妙的错! 后来学了python,竟然莫名其妙的过了?! 不需要过多的解释,代码如下: #!/usr/bin/python #-*-coding:UTF-8-*- import math #输入要查询...
  • C++洛谷题解索引

    2020-12-15 22:47:06
    顺序结构 题号 题目 P2433 小学数学N合一 P5709 Apples Prologue 分支结构 题号 题目 P5710 数的性质 P5711 闰年判断 P5712 Apples P5713 洛谷团队系统 P5714 肥胖问题 P5715 三位数排序 P5716 月份天数 P1085 不...
  • #洛谷题解 2020.12.7

    2020-12-07 19:02:25
    今天,我在洛谷上看见了这样一道题,灰常的nb 看了中文翻译(其实是因为我看不懂英文 ),我心中一顿狂喜。 这不就是解方程吗??? 虽然我早就知道了 求R2的思路就是三年级学过的逆推。 就是这样:R2=S*2-R1 所以。...
  • 一、题目 https://www.luogu.org/problemnew/show/P1028 二、代码 #include<bits/stdc++.h> using namespace std; int n; int f[1001]; int main() { cin >> n; for(int i = 1;... { ...
  • 区别在于数据集比洛谷的小。 题目描述 伐木工人米尔科需要砍倒M米长的木材。这是一个对米尔科来说很容易的工作,因为他有一个漂亮的新伐木机,可以像野火一样砍倒森林。不过,米尔科只被允许砍倒单行...
  • 思路 这一题其实很简单,我们只要明白如何求出较小锐角的正弦值就可以了。 较小锐角的正弦值 正弦应该都知道吧,不知道戳这儿(正弦) 而根据“大边对大角,小边对小角”我们就可以推出,较小边与斜边的正弦值就是较...
  • 洛谷题解跳转站(P1050——P1099)救救孩子们吧!为了方便广大蒟蒻,做一个新的题解跳转器吧P1050——P1059P1060——P1069P1070——P1079P1080——P1089P1090——P1099就这些 上一页 下一页?,还没得! 救救孩子们...
  • 目录分析Python版1 输入2 阶乘(1) for循环(2) 连乘3 外面一层for循环4 连加5 输出6 完整代码C++版打表 分析 这道题说要用高精度来写,但是Python完全不用,自带高精 那么我不讲C++辣! 但是我依然仁慈的来讲一下C++。...
  • 原题传送门:Cutting Carrot 不难看到,本题考查了一些和相似三角形有关的数学知识,在这里,我们先做一些数学上的推导。... 我的洛谷账号:这是我 我的洛谷团队:这是我的团队 欢迎大家关注我,并加入我的团队哦^ _ ^
  • 洛谷题解P1042 乒乓球

    2020-02-07 16:29:05
    洛谷题解 P1042 乒乓球 题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华...
  • 来看这一道题目。 这道题简直弱爆了太简单了,连个输入都木有,直接叫我们输出。 就是注意这是一个字符串,要用双引号输出。 C++ CODE: #include<iostream> using namespace std; int main() ......
  • 洛谷题解——P1443:马的遍历

    千次阅读 2020-03-10 10:49:52
    洛谷,https://www.luogu.com.cn/problem/P1443。 题目描述 有一个 n*m 的棋盘 (1 < n, m <= 400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步? 输入格式 一行四个数据,棋盘...
  • 洛谷题解P1002_过河卒

    2021-01-30 13:08:10
    题目描述 棋盘上 A点有一个过河卒,需要走到目标 B点。卒行走的规则:可以向下、或者向右。同时在棋盘上 C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。...
  • 洛谷题解——P1678:烦恼的高考志愿

    千次阅读 2020-05-11 19:30:25
    洛谷,https://www.luogu.com.cn/problem/P1678。 我的OJ,http://47.110.135.197/problem.php?id=4276。 题目描述 现有m 所学校,每所学校预计分数线是 ai。有n 位学生,估分分别为 bi​。 根据 n 位学生的估分...
  • 洛谷,https://www.luogu.com.cn/problem/P2043。 我的OJ,http://47.110.135.197/problem.php?id=5279。 题目描述 对 N! 进行质因子分解。 输入格式 输入数据仅有一行包含一个正整数 N,N <= 10000。 输出...
  • 原题传送门:Giga Tower 一、题意概述 【大意】一些线段把矩形分成了多个小多边形,随后给了一个圆,判断其与哪些块有交集(请注意:不一定相交),并求出这些块的面积。 【样例分析】 其中标阴影部分的就是与圆有...
  • 洛谷网站 目录分析题目Python版代码1:一行一行输出2:多行输出C++版代码 分析题目 这道题主要就是训练输入输出,没什么可说的。 Python版代码 1:一行一行输出 print(' ********') print(' ************') print(' ####...
  • 原题传送门 一、题意概要 有一个长度为 n n n 的整数序列,两个游戏者 A A A 和 B B B 轮流取数,且均采用贪心算法,求... 我的洛谷账号:这是我 我的洛谷团队:这是我的团队 欢迎大家关注我,并加入我的团队哦^ _ ^

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,825
精华内容 8,730
关键字:

洛谷题解