日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Directed Roads CodeForces - 711D (基环外向树 )

發(fā)布時(shí)間:2023/12/18 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Directed Roads CodeForces - 711D (基环外向树 ) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ZS the Coder and Chris the Baboon has explored Udayland for quite some time. They realize that it consists of n towns numbered from 1 to n.

There are n directed roads in the Udayland. i-th of them goes from town i to some other town ai (ai?≠?i). ZS the Coder can flip the direction of any road in Udayland, i.e. if it goes from town A to town B before the flip, it will go from town B to town A after.

ZS the Coder considers the roads in the Udayland confusing, if there is a sequence of distinct towns A1,?A2,?...,?Ak (k?>?1) such that for every 1?≤?i?<?k there is a road from town Ai to town Ai?+?1 and another road from town Ak to town A1. In other words, the roads are confusing if some of them form a directed cycle of some towns.

Now ZS the Coder wonders how many sets of roads (there are 2n variants) in initial configuration can he choose to flip such that after flipping each road in the set exactly once, the resulting network will not be confusing.

Note that it is allowed that after the flipping there are more than one directed road from some town and possibly some towns with no roads leading out of it, or multiple roads between any pair of cities.

Input
The first line of the input contains single integer n (2?≤?n?≤?2·105) — the number of towns in Udayland.

The next line contains n integers a1,?a2,?...,?an (1?≤?ai?≤?n,?ai?≠?i), ai denotes a road going from town i to town ai.

Output
Print a single integer — the number of ways to flip some set of the roads so that the resulting whole set of all roads is not confusing. Since this number may be too large, print the answer modulo 109?+?7.

Examples
Input
3
2 3 1
Output
6
Input
4
2 1 1 1
Output
8
Input
5
2 4 2 5 3
Output
28
Note
Consider the first sample case. There are 3 towns and 3 roads. The towns are numbered from 1 to 3 and the roads are , , initially. Number the roads 1 to 3 in this order.

The sets of roads that ZS the Coder can flip (to make them not confusing) are {1},?{2},?{3},?{1,?2},?{1,?3},?{2,?3}. Note that the empty set is invalid because if no roads are flipped, then towns 1,?2,?3 is form a directed cycle, so it is confusing. Similarly, flipping all roads is confusing too. Thus, there are a total of 6 possible sets ZS the Coder can flip.

The sample image shows all possible ways of orienting the roads from the first sample such that the network is not confusing.

題意:


思路:

細(xì)節(jié)見(jiàn)代碼:

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <queue> #include <stack> #include <map> #include <set> #include <vector> #include <iomanip> #define ALL(x) (x).begin(), (x).end() #define rt return #define dll(x) scanf("%I64d",&x) #define xll(x) printf("%I64d\n",x) #define sz(a) int(a.size()) #define all(a) a.begin(), a.end() #define rep(i,x,n) for(int i=x;i<n;i++) #define repd(i,x,n) for(int i=x;i<=n;i++) #define pii pair<int,int> #define pll pair<long long ,long long> #define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define MS0(X) memset((X), 0, sizeof((X))) #define MSC0(X) memset((X), '\0', sizeof((X))) #define pb push_back #define mp make_pair #define fi first #define se second #define eps 1e-6 #define gg(x) getInt(&x) #define chu(x) cout<<"["<<#x<<" "<<(x)<<"]"<<endl using namespace std; typedef long long ll; ll gcd(ll a,ll b){return b?gcd(b,a%b):a;} ll lcm(ll a,ll b){return a/gcd(a,b)*b;} ll powmod(ll a,ll b,ll MOD){ll ans=1;while(b){if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;} inline void getInt(int* p); const int maxn=1000010; const int inf=0x3f3f3f3f; /*** TEMPLATE CODE * * STARTS HERE ***/ std::vector<int> son[maxn]; int n; int depth[maxn]; bool vis[maxn]; ll num=0ll; int flag=1; void dfs(int id,int pre,int step) {vis[id]=1;depth[id]=step;for(auto x:son[id]){if(x!=pre){if(vis[x]&&flag){num=depth[id]-depth[x]+1ll;flag=0;}if(!vis[x])dfs(x,id,step+1);}if(x==pre){pre=-1;}} } const ll mod=1e9+7; int far[maxn]; int main() {//freopen("D:\\common_text\\code_stream\\in.txt","r",stdin);//freopen("D:\\common_text\\code_stream\\out.txt","w",stdout);gbtb;cin>>n;int x;repd(i,1,n){cin>>x;son[x].pb(i);son[i].pb(x);}ll temp=n;ll ans=1ll;repd(i,1,n){if(!vis[i]){flag=1;dfs(i,-1,0);temp-=num;ans=(ans*((powmod(2ll,num,mod)-2ll+mod)%mod))%mod;}}ans=(ans*(powmod(2ll,temp,mod)))%mod;cout<<ans<<endl;return 0; }inline void getInt(int* p) {char ch;do {ch = getchar();} while (ch == ' ' || ch == '\n');if (ch == '-') {*p = -(getchar() - '0');while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 - ch + '0';}}else {*p = ch - '0';while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 + ch - '0';}} }

轉(zhuǎn)載于:https://www.cnblogs.com/qieqiemin/p/11257137.html

總結(jié)

以上是生活随笔為你收集整理的Directed Roads CodeForces - 711D (基环外向树 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产美女一级视频 | 日韩www在线观看 | 99在线看 | 四虎黄色影视 | 天堂网在线中文 | 成人av入口 | 亚洲三级小视频 | 91精品国产乱码在线观看 | 亚洲无码精品在线观看 | 又色又爽又黄gif动态图 | 欧美一级淫片免费 | 黑人极品videos精品欧美裸 | 19禁大尺度做爰无遮挡电影 | 黄色资源网 | 伊人网视频在线 | 国产又黄又粗又爽 | 99国产精品久久久 | 欧美精品v国产精品v日韩精品 | 麻豆黄色网 | 日韩精品极品视频免费观看 | www视频免费观看 | 久久黄色 | 黄色91在线观看 | 丝袜美腿一区二区三区 | a级片免费在线观看 | 国产精品理论在线观看 | 国产剧情av在线 | 炕上如狼似虎的呻吟声 | 国产视频1区2区 | 337p日本欧洲亚洲大胆张筱雨 | 极品久久久久久 | 九热视频在线观看 | 精品成人av| 中文字幕一区二区不卡 | 中文字幕伦理 | 日本黄色动态图 | 亚色av| 国产乱码一区 | 欧美精品一区二区三区久久 | 日韩欧美综合一区 | 韩国av一区 | 国产一级片免费 | 欧美裸体精品 | 在线看黄色的网站 | 久久久久a| 国产69精品一区二区 | 青青草原影视 | 黄色网址哪里有 | 国产精品www | 夜夜爽夜夜叫夜夜高潮漏水 | 国产激情在线播放 | 校园激情亚洲 | 欧美精品一区二区三 | a一级黄色 | 亚洲啪| 日本黄图 | 精品在线免费观看视频 | 1024亚洲天堂 | 国产精品资源 | 精品人妻一区二区三区蜜桃视频 | 蜜臀久久99精品久久一区二区 | 91久久国产综合久久91精品网站 | 在线免费中文字幕 | 国产精品对白 | 欧美69久成人做爰视频 | 992tv成人免费视频 | 九九色九九 | 一级片欧美 | 欧美精品第一区 | 美女污软件 | 国产卡一卡二卡三 | 欧美一区二区在线播放 | 依人成人网 | 国产美女又黄又爽又色视频免费 | 野花视频在线免费观看 | sm久久捆绑调教精品一区 | 综合色在线观看 | 人日人视频 | 国产欧美一区二区精品久久久 | 极品销魂美女少妇尤物 | 丁香花电影高清在线阅读免费 | 美女一区二区三区 | av成人天堂| 亲子伦视频一区二区三区 | 亚洲AV成人无码久久精品巨臀 | 亚洲福利影院 | 青草操| 性xxxx搡xxxxx搡欧美 | 色哟哟国产精品 | 国产欧美激情视频 | 精品亚洲成人 | 三级黄色在线视频 | 激情午夜av | 亚洲二三区 | 在线不卡的av | 成人精品国产免费网站 | 国产xxx| 亚洲国产精品成人午夜在线观看 | av天堂永久资源网 |