1006 (dfs)

#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const double eps = 1e-6;
const int N = 3e5+7;
typedef long long ll;
const ll mod = 998244353 ;
using namespace std;
vector<int> G[N];
int d[N],vis[N];
ll qpow(ll a,ll b){
ll ans=1; ll base=a;
while(b){
if(b&1) ans=ans*base%mod;
base=base*base%mod;
b>>=1;
}
return ans;
}
ll res=1;
ll num=0;
void dfs(int u,int fa,int cnt){
//cout<<u<<endl;
d[u]=cnt;
for(int i=0;i<G[u].size();i++){
int v=G[u][i];
if(v==fa) continue;
if(!vis[v]){
vis[v]=1;
dfs(v,u,cnt+1);
vis[v]=2;
}else if(vis[v]==1){
//cout<<cnt-d[v]+1<<endl;
res=res*(qpow(2,cnt-d[v]+1)-1)%mod;
num+=(cnt-d[v]+1);
}else if(vis[v]==2){
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int n,m;
while(cin>>n>>m){
for(int i=1;i<=n;i++) G[i].clear();
memset(vis,0,sizeof(vis));
memset(d,0,sizeof(d));
res=1;
num=0;
for(int i=1;i<=m;i++){
int u,v; cin>>u>>v;
G[u].push_back(v);
G[v].push_back(u);
}
vis[1]=1;
dfs(1,0,1);
// for(int i=1;i<=n;i++)
// cout<<d[i]<<endl;
// cout<<res<<endl;
//cout<<num<<endl;
cout<<res*qpow(2,m-num)%mod<<endl;
}
return 0;
}

1010(kmp)

#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const double eps = 1e-6;
const int N = 1e7+7 ;
typedef long long ll;
const ll mod = 998244353 ;
using namespace std;
int nextt[N];
void get_next(string s){
nextt[1]=0;
int len=s.length();
for(int i=2,j=0;i<=len;i++){
while(j>0&&s[j]!=s[i-1]) j=nextt[j];
if(s[j]==s[i-1]) j++;
nextt[i]=j;
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
ll a,b;
while(cin>>a>>b){
string s; cin>>s;
int len=s.length();
int po=0;
for(int i=0;i<len;i++){
if(s[i]=='.'){
po=i;
break;
}
}
s=s.substr(po+1,len-po-1);
reverse(s.begin(),s.end());
get_next(s);
len=s.length();
ll ans=-inf;
for(int i=1;i<=len;i++){
ans=max(ans,a*i-b*(i-nextt[i]));
}
cout<<ans<<endl;
}
return 0;
}

最新文章

  1. win 10 安装软件 报错发布者不受信任
  2. Linq的分页与组合查询的配合使用
  3. 浅析jquery ui的datepicker组件
  4. Linux线程-创建
  5. oledb 写入 office2010 以及发布到iis 遇到的奇怪问题总结
  6. 前端资源多个产品整站一键打包&amp;包版本管理(二)——如何在bower的配置文件加上注释
  7. Quartz Sheduler 入门
  8. python3下的super()
  9. [LeetCode] 128. Longest Consecutive Sequence 解题思路
  10. HTTP协议之ETag字段
  11. 栈上分配存储器的方法 alloca 抽样
  12. oracle 分页查询数据重复问题
  13. Lodop打印设计里的 打印项对齐
  14. 【HDU - 4344】Mark the Rope(大整数分解)
  15. spring redis 注解实现缓存机制
  16. Win7 开机自动启动Outlook2010
  17. LVS:三种负载均衡方式比较
  18. Emacs的一些事情(与Vi的争议及使用)
  19. P1616 疯狂的采药 洛谷
  20. vasa构架

热门文章

  1. Ubuntu 一直要求依赖的错误
  2. Kali Debian 修改时区
  3. uber_go_guide解析(三)(规范)
  4. 【Flutter】可滚动组件之CustomScrollView
  5. 跨站脚本漏洞(XSS)基础
  6. 什么是xss攻击
  7. 2V升3.3V芯片,输出500MA,低功耗10uA解决方案
  8. 求得二叉搜索树的第k小的元素
  9. Mybatis Plus 3.4版本之后分页插件的变化
  10. 细数JS中实用且强大的操作符&amp;运算符