1. 交换树节点
给定一棵树,每个节点有一个权值。现在每次可以交换任意两个节点的权值,
请问最少多少次交换可以使得每个节点的权值等于它的编号?
保证给出的权值是一个排列,也就是说保证一定有解。
不用考虑树的关系,因为不是相邻交换
``` int main() { int n; cin>>n; vector2. 时区转换
东八区(UTC/GMT+08:00)是比世界协调时间(UTC)/格林尼治时间(GMT)快8小时的时区
当格林尼治标准时间为00:00时东八区的标准时间为08:00。
输入北京时间,输出格林尼治标准时间
模拟题减八小时
int main() {
int T;
cin>>T;
while(T--){
string beijing;
cin>>beijing;
int idx = 0;
while(idx<beijing.size()&&beijing[idx]!=':')
idx++;
int hour = 0;
for(int i=0;i<idx;i++){
hour = hour*10 + (beijing[i]-'0');
}
hour = (hour+24-8)%24;
string res = "";
while(hour){
res = to_string(hour%10) + res;
hour/=10;
}
if(res.size()==0) res = "00" + res;
if(res.size()==1) res = "0" + res;
cout<<res + beijing.substr(idx)<<endl;
}
return 0;
}