P8647 [蓝桥杯 2017 省 AB] 分巧克力
思路:二分查找
#include
using namespace std;
int n,k;
int h[100010],w[100010];
bool check(int x)
{
int sum=0;
for(int i=0;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 { cin>>h[i]>>w[i]; } int l=1,r=100010; while(l+1 { int mid=(l+r)/2; if(check(mid)) l=mid; else r=mid; } cout< return 0; } P8738 [蓝桥杯 2020 国 C] 天干地支 思路:首先确定0004年是甲子年,并以此为基点。 #include 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< return 0; } P8772 [蓝桥杯 2022 省 A] 求和 思路:先算前缀和,然后就遍历 #include 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 { sum+=(q[n]-q[i])*a[i]; } cout< return 0; } 相关阅读
发表评论