3.21

原题链接

题外话

今天挺有意思的,题意想明白了,然后代码写错了。。

题意

就是让你找出能𝑑𝑖𝑠(𝑖,𝑗) = 𝑑𝑖𝑠(𝑗,𝑘) = 𝑑𝑖𝑠(𝑖,𝑘) ,所有方案

思路

通过看样例, 发现符合条件的除了自己本身就是路径为偶数(注意两条奇数路经也是偶数,自己错在这),其他没啥说的,最后结果输出$ x^3$

代码

///*
//正在播放《フリージア》
//1:21  ━━━━━━●─────   5:35
//   ?   ?   ??   ?   ?
//```````'`...```````''`````````````'````````````````'`.`''
//```````''..`';;'```''```'''''''''''''`````````````````'':
//.````''''':;;!!:````'````'''''''''''``````````````````'':
//``''''''':;;;;;'```'``````''```````````____________```'':
//`````````:;;!;'```````````'```````'```|   所以说   |'``'':
//```````'|$&$%:````````````'```````````|不要停下来啊|''''':
//````'''!$&&&|'```````````'''::''::''''/ (指AC)  |':'':::
//````'':|&&&$!'`````'''''''::.....`;!;'/_________|''``'::
//  ....'|&&@$!'........```:!;'....`:;:```````````````````'
//..````;$&&&$!:''``````'':|%%!::;|%$$!::::::::''::::::::::
//``````!&&@&&|:'````````':|$$$$$$$$$|:':::::::::::::::::::
//`````:%&@@@@@@@@&&&@@@@&&&&@@@@@@@&&&|::::::::':::::::::;
//`````.```':|$@@@@@@@@@@@@@@@@@@@@@@@@###@@&&$|;:::'::::::
//````````````';|$&@@@@@@@@@###@@@@@@########@@@@$!''''::::
//`````````..````:|%$@@@@@#########@#########@@@@&!''''::::
//`````````````````:|&########################@@@$;::::::::
//``````````````````:!$@########################@%;:::'::::
//``````````..``````':|&#######################@@&!''''''::
//''''::'''`.`''''''':|@#######################@@&|:'`.`';!
//:::::::::``'''''';%@######################@@##@@&!::'';;;
//::;::::::`.''''';%@@@@####################$%@##@@%;:'':;!
//:;;;;::::``':;%@@@#########################&%&##@@|:'';;!
//;;!;;;;;;'`::;%@#############################@@##@$!'';!!
//;;;;;;;;:``':::::;|$@############################@$!'`;!!
//::;;;;;;:'`'::::::;!$@#######################&&@$$$;``:;;
//`````````..````````'|@#####################$;!$$$&@@|''':
//'''''''''''''':'''''|@#########@&@##########@@####@@&%|!!
//''''''''':'''::'':''!&########&!|&@##########&&####&%|!||
//:::::'''::::::::::::!&########|:;|$@#########@&###&%||||!
//:::::::'''''':::::::!&#######@!:;!!$@########@$&##@%||||!
//
//                    だからよ...止まるじゃねえぞ
// */




#include <vector>
#include <algorithm>
#include <string>
#include<cstring>
#include <iostream>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <unordered_map>
#include <bitset>
#include <cassert>
#include <chrono>
#include <random>
#include <iomanip>
#include <unordered_set>
#include <ctime>
#include <chrono>
using namespace std;
// #define  ll long long
const int N =1e6+10;
#define PII pair<int , int > 
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define pb push_back
#define sz(x) (int)(x).size()
typedef long long ll;
typedef long double ld;
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
int n , m ,t ;

#define __i __int128
//ll mod = 1e9+7;
vector< pair<ll , ll > > s[11000];
ll cnt1 =0 , cnt2=0 ;
//string manacher(string s){
//	if(s.size()<2)return s;
//	string t ;t+='$';
//	for(int i=0;i<s.size();i++)
//		t +='#'+s[i];
//	t+='@';
//	int num = t.size();
//	int p[num];
//	int id =0 , mx= 0;
//	int maxl = -1;
//	int index =0;
//	for(int j=1 ;j<num-1;j++){
//		p[j] = mx>j?min(p[2*id-j],mx - j):1;
//		while(t[j+p[j]]==t[j-p[j]])p[j]++;
//		if(mx<p[j]+j){
//			mx = p[j]+j;
//			id = j;
//		}
//		if(maxl < p[j]+ 1){
//			maxl = p[j]-1 ;
//			index = j;
//		}
//	}
//	int start = (index - maxl)/2;
//	//cout <<start<<endl;
//	return s.substr(start ,start+maxl);
//	
//}
void dfs(ll x, ll fa, ll num) {
	if(num%2)cnt1++;
	else cnt2++;
	for(int i=0 ;i<sz(s[x]);i++){
		if(s[x][i].first == fa)continue ;
		dfs(s[x][i].first, x, (num + s[x][i].second)%2 );
	}
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
	cin >>n;
	
	for(int i=0;i<n-1;i++){
		ll a,b,c;cin>>a>>b>>c;
		s[a].push_back({b,c});
		s[b].push_back({a,c});
	}
	dfs(1,0,0);
	cout<<cnt1*cnt1*cnt1+ cnt2*cnt2*cnt2<<endl;
//	cout<<se.size()<<endl;
//	cout<<n-s.size()+(s.size())*(s.size())*(s.size())<<endl;
	
    return 0;

}

posted @ 2020-03-21 19:26  dsrcis  阅读(86)  评论(0编辑  收藏  举报