标签:题解 back long 202112 v3 v4 登机牌 push define
分析:
一步步按照它的要求来就是了。
多项式除法的过程要手动模拟(有点像高精度)。
一开始我50分,是只对答案取了模没对过程取模。
然后80分,发现3^k其实会爆long long。
注意每一处的细节(要不要取模)
代码
#include <bits/stdc++.h>
using namespace std;
#define File(x) freopen("(x)","r",stdin)
#define pf prlong longf
#define ull unsigned long long
#define db double
#define ll long long
#define MAXN
long long w,s,f;
string x;
vector<long long>v;
int main(){
cin>>w>>s>>x;
long long tp=0;
for(long long i=0;i<x.length();i++){
if(x[i]>='A'&&x[i]<='Z'){
if(tp==1){
v.push_back(28);
v.push_back(28);
}
else if(tp==2){
v.push_back(28);
}
tp=0;
v.push_back(x[i]-'A');
}
else if(x[i]>='a'&&x[i]<='z'){
if(tp==0||tp==2)v.push_back(27);
v.push_back(x[i]-'a');
tp=1;
}
else {
if(tp!=2)v.push_back(28);
tp=2;
v.push_back(x[i]-'0');
}
}
if(v.size()%2){
v.push_back(29);
}
vector<long long>v2;
for(long long i=0;i<v.size();i+=2){
v2.push_back(v[i]*30+v[i+1]);
}
long long len=v2.size()+1;
if(s==-1){
while(len%w){
v2.push_back(900);
++len;
}
cout<<len<<endl;
for(auto x:v2)cout<<x<<endl;
return 0;
}
while((len+(1<<(s+1)))%w){
++len;
v2.push_back(900);
}
vector<long long>v3;
v3.push_back(len);
for(auto X:v2){
v3.push_back(X);
}
for(auto x:v3)printf("%d\n",x);
vector<long long>v4;
v4.push_back(1);
v4.push_back(-3);
long long mul=-3;
for(long long i=2;i<=(1<<(s+1));i++){
v4.push_back(0);
mul=mul*3%929;
for(long long j=v4.size()-1;j>=1;j--)v4[j]+=v4[j-1]*mul%929,v4[j]%=929;
}
long long w4=1<<(s+1);
for(long long i=1;i<=w4;i++) v3.push_back(0);
for(long long i=0;i<v3.size();i++){
long long num=v3[i];
for(long long j=i+1;j<=i+w4;j++)v3[j]-=num*v4[j-i]%929,v3[j]%=929;
if(i==v3.size()-w4-1){ f=i+1; break; }
}
while(f<v3.size()){
long long ans1=(-v3[f])%929;
if(ans1<0)ans1+=929;
cout<<ans1<<endl;
++f;
}
return 0;
}
标签:题解,back,long,202112,v3,v4,登机牌,push,define 来源: https://www.cnblogs.com/GUOGaby/p/16061917.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。