Wannafly挑战赛D绿魔法师

mac2022-06-30  24

迭代器相关 定义rbegin和rend要用逆向迭代器reverse_iterator 不过auto只有c++11才能用TWT 一个还挺好用的c++11编辑器

#include<bits/stdc++.h> using namespace std; const int N=1e5+5; inline void read(int &x){ char c=getchar();x=0; for(;!isdigit(c);c=getchar()); for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+c-'0'; } typedef long long ll; int n,num[N],top; std::vector<int>a[N]; std::pair<int,int>sta[N]; inline ll ksm(ll x,ll y,ll mo){ ll res=1; for(;y;y>>=1,x=x*x%mo)if(y&1)res=res*x%mo; return res; } int main(){ read(n); for(int i=1;i<=1e5;i++) for(int t=100000/i,j=1;j<=t;j++) a[i*j].push_back(i); for(int x,k,p,i=1;i<=n;i++){ read(x),read(k),read(p); ll ans=0; for(vector<int>::iterator it=a[x].begin();it!=a[x].end();++it)++num[*it]; for(vector<int>::reverse_iterator it=a[x].rbegin();it!=a[x].rend();++it){ if(!num[*it])continue; ans=(ans+num[*it]*ksm(*it,k,p))%p; for(vector<int>::iterator pt=a[*it].begin();pt!=a[*it].end();++pt){ sta[++top]=make_pair(*pt,num[*it]),num[*pt]-=num[*it]; } } while(top){num[sta[top].first]+=sta[top].second;--top;} printf("%lld\n",ans); } return 0; }

c++11

#include<cstdio> #include<cctype> #include<vector> const int N=1e5+5; inline void read(int &x){ char c=getchar();x=0; for(;!isdigit(c);c=getchar()); for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+c-'0'; } typedef long long ll; int n,num[N],top; std::vector<int>a[N]; std::pair<int,int>sta[N]; inline ll ksm(ll x,ll y,ll mo){ ll res=1; for(;y;y>>=1,x=x*x%mo)if(y&1)res=res*x%mo; return res; } int main(){ read(n); for(int i=1;i<=1e5;i++) for(int t=100000/i,j=1;j<=t;j++) a[i*j].push_back(i); for(int x,k,p,i=1;i<=n;i++){ read(x),read(k),read(p); ll ans=0; for(auto it=a[x].begin();it!=a[x].end();++it)++num[*it]; for(auto it=a[x].rbegin();it!=a[x].rend();++it){ if(!num[*it])continue; ans=(ans+num[*it]*ksm(*it,k,p))%p; for(auto pt=a[*it].begin();pt!=a[*it].end();++pt){ sta[++top]=std::make_pair(*pt,num[*it]),num[*pt]-=num[*it]; } } while(top){num[sta[top].first]+=sta[top].second;--top;} printf("%lld\n",ans); } return 0; }

转载于:https://www.cnblogs.com/MikuKnight/p/9895216.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)