OJ刷题笔记(基础20-40)

本文记录了在在线判题平台OJ上的刷题笔记,涉及时间转换、集合运算、瓷砖铺放、字符串对比等多个算法问题的解题思路。通过分析题目,讲解了如何利用数学、STL容器、递归、动态规划等方法解决问题,提供了实用的编程技巧,如浮点数占位符、字符串处理和矩阵乘法等。
摘要由CSDN通过智能技术生成

TsinSen清橙:

  1. 缩小的陆地(shrinking land)

    解题思路:侵蚀面积s每年增加50,当s大于由原点为圆心、房子到原点的长度为半径的圆的面积一半时,房子将受到侵蚀,增加的50的次数即第几年。

    • PI的精度至少要取到3.1416,PI = 4 * atan(1.0) = 3.14159;
    • printf("%.0f",z);scanf("%f %f",&x,y&); scanf("%1f %1f",&x,&y) ; //浮点数占位符,取整输出占位符。
    • 使用cin cout可以忽略输入输出数据的占位符;printf("%d ",a)可以输出空格。
    #include <iostream>
    #include <cmath>
    using namespace std;
    int main(){
        float s,x,y;
        int t,z;
        cin >> t;
        while(t--){
            z = 0;
           cin >> x >> y;
            s = ( x * x + y * y ) * 3.14159/ 2;
            while(z*50 <= s){
                z++;
            }
            cout<<z<<endl;
        }
    	return 0;
    }	
    
  2. 集合运算

    解题思路:利用list的merge() / sort() / unique() 函数快速求并集;并集中B中没有的是B在A中的差集,放入差集集合;AB中同时有的元素,放入交集集合。

    • 新建数组:int A[n ] ;
    • stl的list新建list < int > A;A.sort(); A.merge(B); A.push_back(); A.front();A.pop_front();
  3. 时间转换

    解题思路:逐层减去,即先用总时间T0/3600向下取整,是H;减去小时时间H,更新总时间T1/60是分钟时间M,减去分钟时间,是最后的秒时间S;

    • #include<math.h> 对除法结果用floor(number),向下取整。
  4. 瓷砖铺放

    解题思路:可以使用斐波那契数列(递归)、动态规划(递推)两种方法 来解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值