蓝桥杯day5刷题日记-分巧克力-天干地支-求和

2024-03-21 08:44

本文主要是介绍蓝桥杯day5刷题日记-分巧克力-天干地支-求和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 P8647 [蓝桥杯 2017 省 AB] 分巧克力

思路:二分查找

#include <iostream>
using namespace std;
int n,k;
int h[100010],w[100010];bool check(int x)
{int sum=0;for(int i=0;i<n;i++){sum+=(h[i]/x)*(w[i]/x);if(sum>=k) return true;}return false;
}int main()
{cin>>n>>k;for(int i=0;i<n;i++){cin>>h[i]>>w[i];}int l=1,r=100010;while(l+1<r){int mid=(l+r)/2;if(check(mid)) l=mid;else r=mid;}cout<<l; return 0;
}

P8738 [蓝桥杯 2020 国 C] 天干地支

思路:首先确定0004年是甲子年,并以此为基点。

#include <iostream>
using namespace std;
int x;int main()
{string s1[]={"jia","yi","bing","ding","wu","ji","geng","xin","ren","kui"};string s2[]={"zi","chou","yin","mao","chen","si","wu","wei","shen","you","xu","hai"};cin>>x;if(x<4){if(x==3) cout<<"kuihai";if(x==2) cout<<"renxu";if(x==1) cout<<"xinyou";return 0;}x=(x-4)%60;60年一个循环,找出这个数在循环里的位置int a=x%10,b=x%12;然后通过求余数就可以找到答案cout<<s1[a]<<s2[b];return 0;
}

P8772 [蓝桥杯 2022 省 A] 求和

思路:先算前缀和,然后就遍历

#include <iostream>
using namespace std;
int n;
long long sum;
int a[200010];
long long q[200010];int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];q[i]=q[i-1]+a[i];}for(int i=1;i<n;i++){sum+=(q[n]-q[i])*a[i];} cout<<sum;return 0;
}

这篇关于蓝桥杯day5刷题日记-分巧克力-天干地支-求和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/832262

相关文章

【每日刷题】Day113

【每日刷题】Day113 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 91. 解码方法 - 力扣(LeetCode) 2. LCR 098. 不同路径 - 力扣(LeetCode) 3. 63. 不同路径 II - 力扣(LeetCode) 1. 91. 解码方法 - 力扣(LeetCode) //思路:动态规划。 cl

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

1 模拟——67. 二进制求和

1 模拟 67. 二进制求和 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1:输入:a = "11", b = "1"输出:"100"示例 2:输入:a = "1010", b = "1011"输出:"10101" 算法设计 可以从低位到高位(从后向前)计算,用一个变量carry记录进位,如果有字符没处理完或者有进位,则循环处理。两个字符串对

hot100刷题第1-9题,三个专题哈希,双指针,滑动窗口

求满足条件的子数组,一般是前缀和、滑动窗口,经常结合哈希表; 区间操作元素,一般是前缀和、差分数组 数组有序,更大概率会用到二分搜索 目前已经掌握一些基本套路,重零刷起leetcode hot 100, 套路题按套路来,非套路题适当参考gpt解法。 一、梦开始的地方, 两数之和 class Solution:#注意要返回的是数组下标def twoSum(self, nums: Lis

Leetcode67---二进制求和

https://leetcode.cn/problems/add-binary/description/ 给出的两个二进制,我们可以从最后开始往前运算。 给当前短的一位前面补充0即可。 class Solution {public String addBinary(String a, String b) {//给的就是二进制字符串 最后一位开始遍历 如果没有就补充0?StringBuil

代码随想录刷题day25丨491.递增子序列 ,46.全排列 ,47.全排列 II

代码随想录刷题day25丨491.递增子序列 ,46.全排列 ,47.全排列 II 1.题目 1.1递增子序列 题目链接:491. 非递减子序列 - 力扣(LeetCode) 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列_哔哩哔哩_bilibili 文档讲解:https://programmercarl.com/0491.%E9%80%92%E

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II 1.题目 1.1复原IP地址 题目链接:93. 复原 IP 地址 - 力扣(LeetCode) 视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔哩_bilibili 文档讲解:https://programmercarl.com/0093.%E5%A4%8

UVa 10820 Send a Table (Farey数列欧拉函数求和)

这里先说一下欧拉函数的求法 先说一下筛选素数的方法 void Get_Prime(){ /*筛选素数法*/for(int i = 0; i < N; i++) vis[i] = 1;vis[0] = vis[1] = 0;for(int i = 2; i * i < N; i++)if(vis[i]){for(int j = i * i; j < N; j += i)vis[j] =

【hdu】敌兵布阵(线段树,更加结点,区间求和)

最近开始刷线段树,主要围绕notonlysuccess的线段树总结刷。 结点修改还是比较简单的,不需要什么懒惰标记,直接二分递归就可以了。 #include <iostream>#include <cstdlib>#include <cstdio>#include <string>#include <cstring>#include <cmath>#include <vecto

研1日记5

x = torch.tensor(x),numpy 转tensor 三维矩阵相加 screen -S pid 进入之前创建好的screen transpose()只能一次操作两个维度;permute()可以一次操作多维数据,且必须传入所有维度数, transpose()中的dim没有数的大小区分;permute()中的dim有数的大小区分 PyTorch 两大转置函数 trans