《讲几个笑话》题解
应一些人的要求贴上来(强烈建议仔细想过之后再看)
void Tarjan(int u,int from)
{
dfn[u]=low[u]=++dfscnt;
for(int e=head[u];e;e=nxt[e]){
int v=to[e];
if(v==from) continue;
if(!dfn[v]){
Tarjan(v,e);
low[u]=min(low[u],low[v]);
}
else{
low[u]=min(low[u],dfn[v]);
}
}
}
Tarjan(v,e) 是什么鬼
#define int unsigned long long
int pw[70];
for(int i=63;i>=0;i--) pw[i]=1ull<<i;
i>=0 什么时候成立?
int ans,n;
void dfs(int d)
{
if(d==n){
ans++;
}
dfs(d+1);
}
老兄不return了是吧
int p[N],cnt,vis[N];
for(int i=2;i<=1000000;i++){
if(!vis[i]){
p[++cnt]=i;
for(int j=i+i;j<=1000000;j++) vis[j]=1;
}
}
j++(
int n,tot;
cin>>n;
while(n--){
int x;
cin>>x;
tot+=x;
}
cout<<tot/n<<endl;
n=?
这个比较难
string s="";
for(int i=0;i<=s.size()-1;i++){
cout<<s[i];
}
s.size()是unsigned long long类型的,s.size()-1与你的RP相同((
int f[N][20];
for(int j=1;j<=20;j++){
for(int i=1;i<=n-(1<<j)+1;i++){
f[i][j]=max(f[i][j-1],f[i+(1<<j)][j-1]);
}
}
f[N][20]对吧
const int N=1005,M=1e6+5;
int n,m; //n<=1000,m<=1000000
int head[N],nxt[N],to[N],edge[N],tot;
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y,z;
cin>>x>>y>>z;
add_edge(x,y,z);
add_edge(y,x,z);
}
显然M不见了
const int N=1000005;
int vis[N];
for(int i=1;i<=N;i++) vis[i]=1;
同样的N
int n,cnt;
cin>>n;
for(int i=2;i<=n;i++){
if(n%i==0){
cnt++;
while(n%i==0) n/=i;
}
}
printf("%d has %d prime factors\n",n,cnt);
n=?
后面不写了,累了累了(还有不懂的直接私信我)