当前位置:网站首页>2/11 matrix fast power +dp+ bisection
2/11 matrix fast power +dp+ bisection
2022-07-06 04:03:00 【Zhong Zhongzhong】
Matrix fast power template problem :
It can solve the problem of large data scale , But there are recursion formulas
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll n,k;
struct Matrix
{
static const int N=102; // Open matrix
ll a[N][N];
Matrix(ll e=0) // Matrix Qing 0
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
a[i][j]=e*(i==j);
}
Matrix mul(Matrix A,Matrix B) // Multiplication of matrices A*B
{
Matrix ans(0); // Initialize all to 0 Matrix
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
for (int k=1;k<=n;k++)
{
// Analog multiplication
ans.a[i][j]=(ans.a[i][j]+A.a[i][k]*B.a[k][j])%mod;
}
}
}
return ans; // return
}
Matrix ksm(Matrix A,ll b){
Matrix ans(1); // Initialize all to 1 Matrix
while (b)
{
if (b&1)ans=mul(ans,A); // Fast power
A=mul(A,A);
b>>=1;
}
return ans;
}
};
int main()
{
scanf("%lld%lld",&n,&k);
Matrix tmp;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cin>>tmp.a[i][j];
}
tmp=tmp.ksm(tmp,k);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<tmp.a[i][j]<<" ";
cout<<endl;
}
return 0;
}
https://www.luogu.com.cn/problem/P1103
The difficulty is
Determine the meaning of the array
and
Design state transition equation
#include <bits/stdc++.h>
using namespace std;
const int mod=1e6+7;
const int inf=0x3f3f3f3f;
int f[105][105],n,k,m,a[105],minn=inf;
struct book
{
int h,w;
}e[105];
bool cmp(book e1,book e2)
{
return e1.h<e2.h;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%d%d",&e[i].h,&e[i].w);
sort(e+1,e+n+1,cmp);
memset(f,inf,sizeof(f));
for(int i=1;i<=n;i++)
{
f[i][1]=0;
}
for(int i=2;i<=n;i++) // Indicates which book to add
{
for(int j=1;j<i;j++) // And j This book is adjacent
{
for(int len=2;len<=min(i,n-k);len++) // The number of books currently selected
f[i][len]=min(f[i][len],f[j][len-1]+abs(e[i].w-e[j].w));
}
}
for(int i=n-k;i<=n;i++)
minn=min(minn,f[i][n-k]);
cout<<minn<<endl;
return 0;
}
https://www.luogu.com.cn/problem/P1182
The maximum is the smallest
while(l<r)
{
int mid=(l+r)>>1;
if(check(mid)) // The quantity distributed exceeds the demand , return 1
l=mid+1;
else
r=mid;
}
The minimum is the maximum :
while(l<r)
{
int mid=(l+r+1)>>1;
if(check(mid)) // The quantity divided is less than the demand , return 1
r=mid-1;
else
l=mid;
}
#include <bits/stdc++.h>
using namespace std;
const int mod=1e6+7;
const int inf=0x3f3f3f3f;
int n,m,a[100005],l,r;
int check(int x)
{
int sum=0,num=0;
for(int i=1;i<=n;i++)
{
if(sum+a[i]<=x)
sum+=a[i];
else
sum=a[i],num++;
}
return num>=m; // The number of points is greater than the required number of questions , explain x It's worth less
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
l=max(l,a[i]);
r+=a[i];
}
while(l<r) // The template with the minimum maximum
{
int mid=(l+r)>>1;
if(check(mid))
l=mid+1;
else
r=mid;
}
cout<<l<<endl;
return 0;
}
边栏推荐
- Benefits of automated testing
- KS008基于SSM的新闻发布系统
- KS003基于JSP和Servlet实现的商城系统
- Record the pit of NETCORE's memory surge
- Prime Protocol宣布在Moonbeam上的跨链互连应用程序
- TCP/IP协议里面的网关地址和ip地址有什么区别?
- How to modify field constraints (type, default, null, etc.) in a table
- [PSO] Based on PSO particle swarm optimization, matlab simulation of the calculation of the lowest transportation cost of goods at material points, including transportation costs, agent conversion cos
- 【FPGA教程案例12】基于vivado核的复数乘法器设计与实现
- SSTI template injection explanation and real problem practice
猜你喜欢
The Research Report "2022 RPA supplier strength matrix analysis of China's banking industry" was officially launched
Database, relational database and NoSQL non relational database
[disassembly] a visual air fryer. By the way, analyze the internal circuit
Flask learning and project practice 8: introduction and use of cookies and sessions
ESP32(基于Arduino)连接EMQX的Mqtt服务器上传信息与命令控制
WPF effect Article 191 box selection listbox
登录mysql输入密码时报错,ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO/YES
【按键消抖】基于FPGA的按键消抖模块开发
P7735-[noi2021] heavy and heavy edges [tree chain dissection, line segment tree]
Solution to the problem that the root account of MySQL database cannot be logged in remotely
随机推荐
自动化测试的好处
Codeforces Round #770 (Div. 2) B. Fortune Telling
Global and Chinese markets for endoscopic drying storage cabinets 2022-2028: Research Report on technology, participants, trends, market size and share
User experience index system
Stack and queue
User perceived monitoring experience
KS003基于JSP和Servlet实现的商城系统
DM8 archive log file manual switching
MySql數據庫root賬戶無法遠程登陸解决辦法
[adjustable delay network] development of FPGA based adjustable delay network system Verilog
Microkernel structure understanding
Python book learning notes - Chapter 09 section 01 create and use classes
Ipv4中的A 、B、C类网络及子网掩码
Fundamentals of SQL database operation
Ybtoj coloring plan [tree chain dissection, segment tree, tarjan]
简易博客系统
[Massey] Massey font format and typesetting requirements
绑定在游戏对象上的脚本的执行顺序
C#(三十)之C#comboBox ListView treeView
asp. Core is compatible with both JWT authentication and cookies authentication