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 ...
随机推荐
- Python随机数函数
Python随机数函数: ''' choice(seq) 从序列的元素中随机选出一个元素 randrange ([start,] stop [,step]) 从指定范围内,在指定步长递增的集合中 获取 ...
- PHP natsort() 函数
------------恢复内容开始------------ 实例 对数组进行排序: <?php$temp_files = array("temp15.txt"," ...
- 5.22 noip模拟赛
本来我是不想写的,无奈不会写.蒟蒻 考场就是想不出来 今天得到了100分额外水过了100分我是真的失败.还有一个根本不会check 感觉自己非常之菜. 这道题是这样的 还行吧比较有意思 首先确立一个真 ...
- LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci 题解
题目传送门 如果之前推过斐波那契数列前缀和就更好做(所以题目中给出了). 斐波那契数列前缀和题目链接 先来推一下斐波那契数列前缀和: \[\sum\limits_{i=1}^nf(i) \] 其中 \ ...
- 基于Python+Requests+Pytest+YAML+Allure实现接口自动化
本项目实现接口自动化的技术选型:Python+Requests+Pytest+YAML+Allure ,主要是针对之前开发的一个接口项目来进行学习,通过 Python+Requests 来发送和处理H ...
- java多线程编程实例
[转]这篇文章主要介绍了java多线程编程实例,分享了几则多线程的实例代码,具有一定参考价值,加深多线程编程的理解还是很有帮助的,需要的朋友可以参考下. 1.三个售票窗口同时出售20张票程序分析: ...
- 你不是说你会Aop吗?
一大早,小王就急匆匆的跑过来找我,说:周哥,那个记录日志的功能我想请教一下. 因为公司某个项目要跟别的平台做对接,我们这边需要给他们提供一套接口.昨天,我就将记录接口日志的工作安排给了小王. 下面是我 ...
- MPI运行时间测量
转载自:https://blog.csdn.net/silent56_th/article/details/80419314 翻译自:https://stackoverflow.com/questio ...
- image classification backbone 汇总分析
下面是一个list,可以详细看一下 image_classification = [['name','top1_acc','top5_acc','size'],['FixEfficientNet-L2 ...
- 2020 重新出发,JAVA 学习计划
------ @[toc]# 前言 我呢已经工作七年了,一直没有换工作,因为我这个人没什么太大的野心,安安稳稳的生活就挺好,目前的公司虽然福利一般,但是工作稳定,环境也都很熟悉了. 但是今年,到目前为 ...