当前位置:网站首页>Xiao Sha's arithmetic problem solving Report
Xiao Sha's arithmetic problem solving Report
2022-07-05 15:25:00 【wch(】
Xiao Sha's arithmetic problem solving report
label : Inverse element


source : Cattle from
Their thinking :
Start with an example ,
Give the formula 1+1+3 * 1+1 * 6 * 7;
We can divide the formula into 1,1,3 * 1,1 * 6 * 7, Four parts exist num 1~4 in
Set the pointer number to mark the group to which each number belongs , Remember that the sum at this time is ans;
When we Jiang's sixth digit 6 Change it to 7 when ,
First of all, from the ans Subtract from num[4], Ran Ling num[4] / 6 * 7, Re order ans += num[4] that will do
Then I found myself digging
Inverse element
The problem is that the subject data is too large and modular operation is carried out , The order of modulo and division cannot be changed
For example, we give the title mod Reduce to 5
Calculate according to the above method
num[4]=((16%5)7)%5=2
After change num[4]=2 / 6 * 7 % 5 =
2/6 In addition, the problems are exposed To prevent this, we use the inverse element
I am also a beginner of inverse yuan , Is not very good , Don't understand
I mainly refer to the following article
https://zhuanlan.zhihu.com/p/378728642
According to Fermat's theorem When a And b Coprime :
Apply it to the above example to find 6 The inverse element of is 216;
num[4]=2216%57%5=4;
num[4]=7*7%5=4;
That's right
We can make bold guesses 1e9+7 Prime number , Get by fast power a model b Inverse element
Code implementation :
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 1e9+7;
const int N = 1e6+8;
char s[N];
ll num[N],pos[N],n,q,a[N];
ll ksm(ll a, ll b) {
ll ans = 1;
while(b){
if (b & 1) (ans *= a) %= mod;
(a *= a) %= mod;
b >>= 1;
}
return ans;
}
int main()
{
cin>>n>>q;
scanf("%s",s+1);
for(int i=1;i<=n;i++) cin>>a[i];
int cnt=1;
num[1]=a[1];
pos[1]=1;
for(int i=2;i<=n;i++){
if(s[i-1]=='*'){
pos[i]=cnt;
num[cnt]=num[cnt]*a[i]%mod;
}
else{
num[++cnt]=a[i];
pos[i]=cnt;
}
}
ll ans = 0,x=0,y=0;
for(int i=1;i<=cnt;i++) (ans+=num[i]) %= mod;
while(q--){
cin>>x>>y;
ans=(ans-num[pos[x]]+mod)%mod;
num[pos[x]]=num[pos[x]]*ksm(a[x],mod-2)%mod*y%mod;
ans=(ans+num[pos[x]])%mod;
a[x]=y;
cout<<ans<<endl;
}
}
边栏推荐
- Bubble sort, insert sort
- Fr exercise topic - simple question
- Select sort and bubble sort
- Super wow fast row, you are worth learning!
- Fr exercise topic --- comprehensive question
- Leetcode: Shortest Word Distance II
- Where is the operation of convertible bond renewal? Is it safer and more reliable to open an account
- wxml2canvas
- P6183 [USACO10MAR] The Rock Game S
- Creation and optimization of MySQL index
猜你喜欢

"Sequelae" of the withdrawal of community group purchase from the city

lv_font_conv离线转换

Bugku's Ah Da

Object. defineProperty() - VS - new Proxy()
![1330: [example 8.3] minimum steps](/img/69/9cb13ac4f47979b498fa2254894ed1.gif)
1330: [example 8.3] minimum steps

Reasons and solutions for redis cache penetration and cache avalanche

ionic cordova项目修改插件

Huiyuan, 30, is going to have a new owner

How can I quickly check whether there is an error after FreeSurfer runs Recon all—— Core command tail redirection

Interpretation of Apache linkage parameters in computing middleware
随机推荐
JS topic - console log()
How can the boss choose programmers to help me with development?
Select sort and bubble sort
First PR notes
sql server学习笔记
How to introduce devsecops into enterprises?
华为哈勃化身硬科技IPO收割机
Stop B makes short videos, learns Tiktok to die, learns YouTube to live?
Leetcode: Shortest Word Distance II
Aike AI frontier promotion (7.5)
Live broadcast preview | how to implement Devops with automatic tools (welfare at the end of the article)
Interpretation of Apache linkage parameters in computing middleware
Behind the ultra clear image quality of NBA Live Broadcast: an in-depth interpretation of Alibaba cloud video cloud "narrowband HD 2.0" technology
漫画:优秀的程序员具备哪些属性?
Thymeleaf uses background custom tool classes to process text
Bugku alert
easyOCR 字符识别
MySQL 巨坑:update 更新慎用影响行数做判断!!!
漫画:程序员不是修电脑的!
Cartoon: programmers don't repair computers!