BestCoder Round #84
第一题:Aaronson
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<math.h>
using namespace std;
typedef long long LL;
int pow(int a,int n){int ans = 1;while(n){if(n&1) ans = ans*a;a = a*a;n>>=1;}return ans;
}
int main()
{int tcase;scanf("%d",&tcase);while(tcase--){int n,m;scanf("%d%d",&n,&m);int k = n;int ans = 0,cnt = 0;while(n){cnt++;if(n%2==1) ans++;n/=2;}if(cnt<=m+1) printf("%d\n",ans);else {int cnt = 0;int t = pow(2,m);//printf("%d\n",k);while(k&&t){//printf("%d %d\n",k,t);cnt+=k/t;k = k - k/t*t;t/=2;}printf("%d\n",cnt);}}return 0;
}
第二题:Bellovin
解题思路:利用nlogn求LIS的方法即可,每次用二分找到的ai的位置,就是bi的值(因为保证字典序最小)
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int maxn = 100005;
int n,a[maxn],d[maxn],ans[maxn];int binsearch(int l,int r,int key)
{int mid;while(l <= r){mid = (l + r) >> 1;if(d[mid] == key) return mid;else if(d[mid] < key) l = mid + 1;else r = mid - 1;}return l;
}int main()
{int t;scanf("%d",&t);while(t--){scanf("%d",&n);for(int i = 1; i <= n; i++)scanf("%d",&a[i]);int len = 0;for(int i = 1; i <= n; i++){int tmp = binsearch(1,len,a[i]);ans[i] = tmp;d[tmp] = a[i];if(tmp > len) len = tmp;}for(int i = 1; i < n; i++)printf("%d ",ans[i]);printf("%d\n",ans[n]);}return 0;
}
第四题: Dertouzos
解题思路:我们先分解d的因子,假设最大的为p,那么我们就需要找到一个最大的素数x,使得x*p<=d,否则求出的数最大的因子不可能是d,而是x*p,我们以n=20,d=8为例,最大的因子p=4,那么我们找到的最大素数只能是2,所以得出的结果是1。在寻找最大素数时,可以先打表,再用二分去求解。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;typedef long long LL;
const int maxn = 100005;
int p[maxn],cnt;
LL prime[maxn];void init()
{p[1] = 1;cnt = 0;for(LL i = 2; i <= 100000; i++){if(!p[i]){prime[++cnt] = i;for(LL j= i * i; j <= 100000; j += i)p[j] = 1;}}
}LL qpow(int a,int b,int r)
{LL ans=1,buff=a;while(b){if(b&1)ans=(ans*buff)%r;buff=(buff*buff)%r;b>>=1;}return ans;
}
bool Miller_Rabbin(int n,int a)
{int r=0,s=n-1,j;if(!(n%a))return false;while(!(s&1)){s>>=1;r++;}LL k=qpow(a,s,n);if(k==1)return true;for(j=0;j<r;j++,k=k*k%n)if(k==n-1)return true;return false;
}
bool IsPrime(int n)
{int tab[5]={2,3,5,7};for(int i=0;i<4;i++){if(n==tab[i])return true;if(!Miller_Rabbin(n,tab[i]))return false;}return true;
}int main()
{int t;LL n,d;scanf("%d",&t);init();while(t--){scanf("%lld%lld",&n,&d);LL m = 1;if(IsPrime(d) == false){for(int i = 2; i * i <= d; i++)if(d % i == 0){m = max(m,d / i);break;}}int l = 1,r = cnt,mid,ans = 0;while(l <= r){mid = (l + r) >> 1;if(prime[mid] * d < n && prime[mid] * m <= d){ans = mid;l = mid + 1;}else r = mid - 1;}printf("%d\n",ans);}return 0;
}
BestCoder Round #84相关推荐
- hdu4585 amp; BestCoder Round #1 项目管理(vector应用)
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 项目管理 Time Limit: 2000/1000 MS (Java/Others) M ...
- 矩阵快速幂---BestCoder Round#8 1002
当要求递推数列的第n项且n很大时,怎么快速求得第n项呢? 可以用矩阵快速幂来加速计算. 我们可以用矩阵来表示数列递推公式 比如fibonacci数列 可以表示为 [f(n) f(n-1)] = [ ...
- hdu4932 Miaomiao#39;s Geometry (BestCoder Round #4 枚举)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4932 Miaomiao's Geometry Time Limit: 2000/1000 MS (Ja ...
- 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II
题目传送门 1 /* 2 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 3 当然有可能两个数和超过p,那么an ...
- Educational Codeforces Round 84 (Rated for Div. 2) D. Infinite Path 构建环 + 思维
传送门 文章目录 题意: 思路: 题意: 懒得写了,直接贴图了. 思路: 遇事不决画成图,考虑将iii向p[i]p[i]p[i]连一个边,可以发现每个点入度为111,出度为111,所以画出来是若干个环 ...
- 贪心 BestCoder Round #39 1001 Delete
题目传送门 1 /* 2 贪心水题:找出出现次数>1的次数和res,如果要减去的比res小,那么总的不同的数字tot不会少: 3 否则再在tot里减去多余的即为答案 4 用set容器也可以做,思 ...
- HDU 5228 ZCC loves straight flush( BestCoder Round #41)
题目链接:ZCC loves straight flush 题面: ZCC loves straight flush Time Limit: 2000/1000 MS (Java/Others) ...
- 字符串处理 BestCoder Round #43 1001 pog loves szh I
题目传送门 1 /* 2 字符串处理:是一道水题,但是WA了3次,要注意是没有加'\0'的字符串不要用%s输出,否则在多组测试时输出多余的字符 3 */ 4 #include <cstdio&g ...
- BestCoder Round #90 Kblack loves flag
BestCoder Round #90 Kblack loves flag 问题描述 kblack喜欢旗帜(flag),他的口袋里有无穷无尽的旗帜. 某天,kblack得到了一个n∗mn*mn∗ ...
最新文章
- iOS 加载本地和网络gif 图片类扩展
- 吴恩达新课发布1天,引3万人观看 | 完整PPT
- Swift 烧脑体操(五)- Monad
- mysql类型_MySQL的数据类型
- [禅悟人生]清心寡欲, 才是人的真实写照
- cookie与session区别|详细版
- Py之matplotlibseaborn :matplotlibseaborn绘图的高级进阶之高级图可视化(基础图(直方图等),箱线图、密度图、小提琴图等)简介、案例应用之详细攻略
- 多个Main函数的应用程序
- php+insert+into+注入,PHP+MySQL之Insert Into数据插入用法分析
- pydebugger
- 【十二省联考2019】异或粽子【01Trie】【堆】【前k大套路】
- 电脑显卡接口类型:VGA、HDMI、DP
- 感谢贫穷,是贫穷限制了人们的善良
- python 阮一峰_Python模块整理
- java sw插件花钱_sw实用插件(Solidworks有什么好的插件?)
- java中递归遍历文件夹下所有文件
- 笔记本计算机无法上无线网络,笔记本电脑无线网络连接不上的原因和解决办法...
- (转)以太坊(Ethereum)全零地址(0x000000...)揭秘
- 多传感器融合定位技术
- 基于 Netty 重构 RPC 框架
热门文章
- 客户端产生CLOSE WAIT状态的解决方案
- Linux shell 对于文件的删除,复制,修改文件名等操作
- Python全栈 MongoDB 数据库(数据的修改)
- 【Touchinput 】触摸和输入 概述(1)
- nuxt.js 本地开发跨域问题(Access-Control-Allow-Origin)及其解决方案
- Silverlight+WCF 新手实例 象棋 主界面-事件区-返回退出(三十三)
- XStream xml与javabean之间的互转
- 解答网友shell问题一例20140702
- C和C++中的整形数据类型
- 艾伟:ASP.NET MVC,深入浅出IModelBinder,在Post方式下慎用HtmlHelper