CodeForces 501C Misha and Forest(异或和)
2016-10-24 23:11
274 查看
给出一个森林,每个点的度和相邻点异或和,求所有边
开始没注意到是森林,摸不到头脑,后来发现从叶子节点开始BFS,这样每次都能出来一条边,遍历完就可以了。
#include"iostream"
#include"cmath"
#include"queue"
#include"vector"
using namespace std;
int d[70000],s[70000];
queue<int> q;
using namespace std;
int main()
{
int n;
int sum=0;
while(!q.empty()) q.pop();
cin>>n;
for(int i=0;i<n;i++)
{
cin>>d[i]>>s[i];
if(d[i]==1) q.push(i);
sum+=d[i];
}
cout<<sum/2<<endl;
while(!q.empty())
{
int w=q.front();
q.pop();
if(d[w]<1) continue;
cout<<w<<' '<<s[w]<<endl;
s[s[w]]^=w;
d[s[w]]--;
if(d[s[w]]==1) q.push(s[w]);
}
/*int a=1;
int b=2;
a=a^b^4^5^6;
cout<<a<<endl;*/
return 0;
}
开始没注意到是森林,摸不到头脑,后来发现从叶子节点开始BFS,这样每次都能出来一条边,遍历完就可以了。
#include"iostream"
#include"cmath"
#include"queue"
#include"vector"
using namespace std;
int d[70000],s[70000];
queue<int> q;
using namespace std;
int main()
{
int n;
int sum=0;
while(!q.empty()) q.pop();
cin>>n;
for(int i=0;i<n;i++)
{
cin>>d[i]>>s[i];
if(d[i]==1) q.push(i);
sum+=d[i];
}
cout<<sum/2<<endl;
while(!q.empty())
{
int w=q.front();
q.pop();
if(d[w]<1) continue;
cout<<w<<' '<<s[w]<<endl;
s[s[w]]^=w;
d[s[w]]--;
if(d[s[w]]==1) q.push(s[w]);
}
/*int a=1;
int b=2;
a=a^b^4^5^6;
cout<<a<<endl;*/
return 0;
}
相关文章推荐
- codeforces 276D Little Girl and Maximum XOR(区间最大异或值--技巧)【模板】
- Codeforces 845G Shortest Path Problem?(异或最短路)
- Codeforces 706D Vasiliy's Multiset(异或字典树)
- codeforces 405 C. Unusual Product and E. Graph Cutting (异或规律 & 搜索)
- 【codeforces 691 E】【矩阵快速幂 思维题】【给定序列,从序列中选择k个数(可以重复选择),使得得到的排列满足xi与xi+1异或的二进制表示中1的个数是3的倍数。问满足条件的序列个数】
- codeforces 888G Xor-MST Sollin算法求最小生成树,0-1异或True
- Codeforces 706D Vasiliy's Multiset(异或字典树)
- codeforces D. Mishka and Interesting sum 求区间内不同数的异或值
- 【CodeForces】947 C. Perfect Security 异或Trie
- Codeforces 617E XOR and Favorite Number (Round #340 (Div. 2) E题) 莫队算法 + 异或基本性质
- Codeforces 706D Vasiliy's Multiset(异或字典树)
- CodeForces 288C Polo the Penguin and XOR operation (位运算,异或)
- Codeforces 706D Vasiliy's Multiset(异或字典树)
- Codeforces 706D Vasiliy's Multiset(异或字典树)
- CodeForces 703D Mishka and Interesting sum (树状数组 区间偶数异或)
- CodeForces 627A XOR Equation(异或)
- Codeforces 501C:Misha and Forest(好题+思维+异或的运算规律+树)
- codeforces 74B. Arpa’s obvious problem and Mehrdad’s terrible solution (异或+二分STL)
- Codeforces 706D Vasiliy's Multiset(异或字典树)
- [Codeforces 842D Vitya and Strange Lesson]异或字典树