ACM study day3
今天练了二分和快速幂,题目挺难的,挑几个我做上的说一下吧。
先给出几个二分和快速幂的模板函数;
二分
void BS(int m)
{
int x=,y=a[m-]-a[];
while(y-x>)
{
int mid=(x+y)/;
if(judge(mid))
x=mid;
else
y=mid;
}
cout<<x<<endl;
}
快速幂
LL PowerMod(LL a, LL b)//a^b
{
LL ans = ;
while (b > )
{
if (b & )
{
ans = (ans*a) % MOD;
}
b >>= ;
a = (a*a) % MOD;
}
return ans;
}
矩阵乘法加矩阵快速幂取模
struct mat
{
ll a[][];
};
mat mat_mul(mat x,mat y)
{
mat res;
memset(res.a,,sizeof(res.a));
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
res.a[i][j]=(res.a[i][j]+x.a[i][k]*y.a[k][j])%MOD;
return res;
} void mat_pow(int n)
{
mat c,res;
c.a[][]=c.a[][]=c.a[][]=;
c.a[][]=;
memset(res.a,,sizeof(res.a));
for(int i=;i<;i++) res.a[i][i]=;
while(n)
{
if(n&) res=mat_mul(res,c);
c=mat_mul(c,c);
n=n>>;
}
printf("%I64d\n",res.a[][]);
}
A POJ 2456
这道题就是二分,但是二分检验的地方比较有趣,全部贴上来,那个judge函数我想了一阵子。。。(比较笨)。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
#include <string>
#include <map>
#include <vector>
#include <set>
#include <queue>
using namespace std;
int a[];
int m,n;
bool judge(int d)
{
int fir,last=;
for(int i=;i<n-;i++)
{
fir=last+;
while(fir<m&&a[fir]-a[last]<d)
fir++;
if(fir==m)
return false;
last=fir;
}
return true;
}
void BS(int m)
{
int x=,y=a[m-]-a[];
while(y-x>)
{
int mid=(x+y)/;
if(judge(mid))
x=mid;
else
y=mid;
}
cout<<x<<endl;
} int main()
{ cin>>m>>n;
for(int i=;i<m;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+m);
BS(m);
return ;
}
ACM study day3的更多相关文章
- ACM STUDY
		
ACM学习<二> 穷举算法思想: 一句话:就是从所有可能的情况,搜索出正确的答案. 步骤: 1.对于一种可能的情况,计算其结果. 2.判断结果是否满足,YES计 ...
 - Java Study day3
		
Day 2 遗留问题: cmd javac编译和 java执行 程序输出Hello World 遗留问题解答: 首先使用Txt记事本写一个后缀为.java的HelloWorld.java程序,直接复制 ...
 - json-lib的使用《二》
		
上篇文章主要集中在了使用json-lib来实现JSON字符串和java中的对象的互转上,忽视了json-lib本身的功能,json-lib中有两个类比较重要:JSONObject和JSONArray, ...
 - JSON字符串和java对象的互转【json-lib】
		
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...
 - JSON 与 对象  、集合  之间的转换
		
JSON字符串和java对象的互转[json-lib] 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很 ...
 - 关于JSON 与 对象 、集合 之间的转换
		
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...
 - Json-lib   进行java与json字符串转换之二
		
二.list和json字符串的互转 list-->>json字符串 public static void listToJSON(){ Student stu=new Student(); ...
 - Json-lib   进行java与json字符串转换之一
		
这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下. 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.J ...
 - Java中JSON字符串与java对象的互换实例详解
		
这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...
 
随机推荐
- docker容器dns之resolv.conf
			
基础信息 操作系统:CentOS Linux release 7.2.1511 (Core) Docker版本:Server Version: 1.9.1 拉取基础镜像 Rhel:7.2 为直接从do ...
 - lemon使用方法
			
1.打开lemon,点击文件--新建比赛 2.输入比赛标题.保存文件名.比赛目录,点击确定 3.打开主文件夹,找到刚才创建的目录,双击打开 4.进入文件夹\(data\) 5.建立一个名为T1的文件夹 ...
 - jquery判断radio是否选中
			
微交易-实体系统 微交易-虚拟系统 <div class="system"> <div class="systemt"> <l ...
 - Python os.tempnam() 方法
			
概述 os.tempnam() 方法用于返回唯一的路径名用于创建临时文件.高佣联盟 www.cgewang.com 语法 tempnam()方法语法格式如下: os.tempnam(dir, pref ...
 - PHP cal_days_in_month() 函数
			
------------恢复内容开始------------ 实例 针对指定的年份和历法,获取一个月中的天数: <?php$d=cal_days_in_month(CAL_GREGORIAN,1 ...
 - CF802C Heidi and Library hard 费用流 区间k覆盖问题
			
LINK:Heidi and Library 先说一下简单版本的 就是权值都为1. 一直无脑加书 然后发现会引起冲突,可以发现此时需要扔掉一本书. 扔掉的话 可以考虑扔掉哪一本是最优的 可以发现扔掉n ...
 - Jenkins总结1-部署jenkins
			
1. 介绍 jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译.打包.分发部署.jenkins可以很好的支持各种语言(比如: ...
 - 手敲代码太繁琐?“拖拉拽”式Python编程惊艳到我了
			
Python到底有多火,从后端开发到前端开发:从金融量化分析到大数据:从物联网到人工智能,都有Python的踪迹. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后, ...
 - java动态代理——代理方法的假设和验证及Proxy源码分析五
			
前文地址 https://www.cnblogs.com/tera/p/13419025.html 本系列文章主要是博主在学习spring aop的过程中了解到其使用了java动态代理,本着究根问底的 ...
 - Python3中,map()函数、filter()函数、reduce()函数的比较
			
1.map(function,iterable):function为函数,或者lambda表达式,iterable是可迭代的序列,即对iterable中的每个item执行一遍function或者lam ...