第一题: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相关推荐

  1. hdu4585 amp; BestCoder Round #1 项目管理(vector应用)

    主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 项目管理 Time Limit: 2000/1000 MS (Java/Others)    M ...

  2. 矩阵快速幂---BestCoder Round#8 1002

    当要求递推数列的第n项且n很大时,怎么快速求得第n项呢? 可以用矩阵快速幂来加速计算. 我们可以用矩阵来表示数列递推公式 比如fibonacci数列 可以表示为 [f(n)   f(n-1)] = [ ...

  3. 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 ...

  4. 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II

    题目传送门 1 /* 2 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 3 当然有可能两个数和超过p,那么an ...

  5. Educational Codeforces Round 84 (Rated for Div. 2) D. Infinite Path 构建环 + 思维

    传送门 文章目录 题意: 思路: 题意: 懒得写了,直接贴图了. 思路: 遇事不决画成图,考虑将iii向p[i]p[i]p[i]连一个边,可以发现每个点入度为111,出度为111,所以画出来是若干个环 ...

  6. 贪心 BestCoder Round #39 1001 Delete

    题目传送门 1 /* 2 贪心水题:找出出现次数>1的次数和res,如果要减去的比res小,那么总的不同的数字tot不会少: 3 否则再在tot里减去多余的即为答案 4 用set容器也可以做,思 ...

  7. HDU 5228 ZCC loves straight flush( BestCoder Round #41)

    题目链接:ZCC loves straight flush 题面: ZCC loves straight flush Time Limit: 2000/1000 MS (Java/Others)    ...

  8. 字符串处理 BestCoder Round #43 1001 pog loves szh I

    题目传送门 1 /* 2 字符串处理:是一道水题,但是WA了3次,要注意是没有加'\0'的字符串不要用%s输出,否则在多组测试时输出多余的字符 3 */ 4 #include <cstdio&g ...

  9. BestCoder Round #90 Kblack loves flag

     BestCoder Round #90 Kblack loves flag 问题描述 kblack喜欢旗帜(flag),他的口袋里有无穷无尽的旗帜. 某天,kblack得到了一个n∗mn*mn∗ ...

最新文章

  1. iOS 加载本地和网络gif 图片类扩展
  2. 吴恩达新课发布1天,引3万人观看 | 完整PPT
  3. Swift 烧脑体操(五)- Monad
  4. mysql类型_MySQL的数据类型
  5. [禅悟人生]清心寡欲, 才是人的真实写照
  6. cookie与session区别|详细版
  7. Py之matplotlibseaborn :matplotlibseaborn绘图的高级进阶之高级图可视化(基础图(直方图等),箱线图、密度图、小提琴图等)简介、案例应用之详细攻略
  8. 多个Main函数的应用程序
  9. php+insert+into+注入,PHP+MySQL之Insert Into数据插入用法分析
  10. pydebugger
  11. 【十二省联考2019】异或粽子【01Trie】【堆】【前k大套路】
  12. 电脑显卡接口类型:VGA、HDMI、DP
  13. 感谢贫穷,是贫穷限制了人们的善良
  14. python 阮一峰_Python模块整理
  15. java sw插件花钱_sw实用插件(Solidworks有什么好的插件?)
  16. java中递归遍历文件夹下所有文件
  17. 笔记本计算机无法上无线网络,笔记本电脑无线网络连接不上的原因和解决办法...
  18. (转)以太坊(Ethereum)全零地址(0x000000...)揭秘
  19. 多传感器融合定位技术
  20. 基于 Netty 重构 RPC 框架

热门文章

  1. 客户端产生CLOSE WAIT状态的解决方案
  2. Linux shell 对于文件的删除,复制,修改文件名等操作
  3. Python全栈 MongoDB 数据库(数据的修改)
  4. 【Touchinput 】触摸和输入 概述(1)
  5. nuxt.js 本地开发跨域问题(Access-Control-Allow-Origin)及其解决方案
  6. Silverlight+WCF 新手实例 象棋 主界面-事件区-返回退出(三十三)
  7. XStream xml与javabean之间的互转
  8. 解答网友shell问题一例20140702
  9. C和C++中的整形数据类型
  10. 艾伟:ASP.NET MVC,深入浅出IModelBinder,在Post方式下慎用HtmlHelper