Codeforces Round #276 (Div. 2)
2024-08-27 20:33:53
A. Factory
题意:给出a,m,第一天的总量为a,需要生产为a%m,第二天的总量为a+a%m,需要生产(a+a%m)%m 计算到哪一天a%m==0为止
自己做的时候,把i开到1000来循环就过了,后来搜题解发现这样过了是运气好
应该这样理解:a大于m的时候没有意义,当a%m重复出现的时候,说明出现了循环,终止计算。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; int main()
{
int i,sum=,ans=,x,m,flag=;
scanf("%d %d",&x,&m);
for(i=;i<=;i++)
{
sum=x;
ans=x%m;
if(ans==)
{
flag=;
break;
}
x=sum+ans;
// printf("x=%d\n",x);
}
if(flag) printf("Yes\n");
else printf("No\n");
}
补-------------------
B. Valuable Resources
题意:给出n个坐标,求能够覆盖这n个坐标的最小的正方形的面积
将这n个点的坐标排序后,正方形的边长为ans=max(a[n]-a[1],b[n]-b[1])
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; int a[],b[];
long long area; int main()
{
int i,j,n;
long long ans1,ans2;
scanf("%d",&n);
for(i=;i<n;i++)
{
cin>>a[i]>>b[i];
}
sort(a,a+n);
sort(b,b+n); ans1=a[n-]-a[];
ans2=b[n-]-b[];
long long t=max(ans1,ans2);
printf("%I64d\n",t*t);
}
C. Bits
题意:给出n,n对数l,r,找出一个数x使得x满足,l<=x<=r,且转换成二进制之后,构成x的1是最多的。
将l从最低位开始填1,直到>=r为止,这样能够保证组成x的1最多
#include<iostream>
#include<cstdio>
#include<cstring>
#include <cmath>
#include<algorithm>
using namespace std; typedef long long LL; int main()
{
int n;
LL l,r;
scanf("%d",&n);
while(n--)
{
scanf("%I64d %I64d",&l,&r);
for(int i=;i<;i++)
if((l|(1LL<<i))<=r) l|=(1LL<<i); printf("%I64d\n",l);
}
}
最新文章
- Go 项目的目录结构 及 安装技巧
- Chrome插件整理
- .Net 转战 Android 4.4 日常笔记(10)--PullToRefresh下拉刷新使用
- ASP.NET中一种超简单的Ajax解决方案
- 前端mvc框架backbone.js入门
- Windows Server 2008服务器配置FTP站点的方法教程
- php base64编码和urlencode
- Java Applet使用
- TP5 中实现支付宝支付 利用model层调用支付宝类库
- 多线程学习系列二(使用System.Threading)
- [再寄小读者之数学篇](2014-06-23 二阶导数估计 [中国科学技术大学2013年高等数学B 考研试题])
- SpringMVC 复杂对象数据绑定
- 原生ajax写法
- 新版谷歌浏览器怎么查找和改变编码格式 IT开发人员谷歌的编码格式
- leetcode329
- 浅谈.net jenkins svn下自动化集成环境安装 搭建 配置
- 20155226 2016-2017-2 《Java程序设计》第一周学习总结
- Chrome字体变粗
- KMP+差分 文章过滤器 (filter)
- postgresql学习文档