F - Free Figurines UVALive - 7752
2017-09-01 09:30
302 查看
套娃这个题,其实只要统计他需要打开几次,还有要合上几次就好,一开始做一个标记,记录下每一个套娃的父亲,然后,比不同,把要发生变化的位置的套娃都拆开,就可以了,最后统计一下需要合上的,最后在统计一下,想要的和改变后的区别,想要的有的,改变后没有的就是需要再加上的。
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 100000 + 10;
int a[maxn],b[maxn],fa[maxn],ce[maxn];
int n;
int ans;
void dfs2(int x)
{
if(fa[x] == 0)
return;
ans++;
dfs2(fa[x]);
fa[x] = 0;
return;
}
int main()
{
while(scanf("%d",&n) != EOF)
{
ans = 0;
memset(ce,-1,sizeof(ce));
memset(fa,0,sizeof(fa));
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i = 1; i <= n; i++)
{
scanf("%d",&a[i]);
fa[i] = a[i];
if(!fa[i])
ce[i] = 0;
}
for(int i = 1; i <= n; i++)
{
scanf("%d",&b[i]);
}
for(int i = 1; i <= n; i++)
{
if(a[i] != b[i])
{
dfs2(a[i]);
dfs2(b[i]);
dfs2(i);
}
}
for(int i = 1; i <= n; i++)
{
if(b[i] != fa[i] && b[i] > 0)
ans++;
}
printf("%d\n",ans);
}
return 0;
}
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 100000 + 10;
int a[maxn],b[maxn],fa[maxn],ce[maxn];
int n;
int ans;
void dfs2(int x)
{
if(fa[x] == 0)
return;
ans++;
dfs2(fa[x]);
fa[x] = 0;
return;
}
int main()
{
while(scanf("%d",&n) != EOF)
{
ans = 0;
memset(ce,-1,sizeof(ce));
memset(fa,0,sizeof(fa));
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i = 1; i <= n; i++)
{
scanf("%d",&a[i]);
fa[i] = a[i];
if(!fa[i])
ce[i] = 0;
}
for(int i = 1; i <= n; i++)
{
scanf("%d",&b[i]);
}
for(int i = 1; i <= n; i++)
{
if(a[i] != b[i])
{
dfs2(a[i]);
dfs2(b[i]);
dfs2(i);
}
}
for(int i = 1; i <= n; i++)
{
if(b[i] != fa[i] && b[i] > 0)
ans++;
}
printf("%d\n",ans);
}
return 0;
}
相关文章推荐
- UVALive 7752 Free Figurines (瞎搞)
- UVALive - 7752 Free Figurines (Gym - 101173F ) 贪心(套娃嵌套)
- UVALive 7752 模拟
- UVALive 7752 Free Figurines——双向链表
- UVa1572 UVaLive6393 Self-Assembly
- UVALive-7509-Dome and Steles
- uva live 6479
- UVALive 2889 (数学)
- UVALive 7146 Defeat the Enemy (贪心+STL)
- UVA Live 7146 Defeat the Enemy——STL
- UVALive 6092 Catching Shade in Flatland
- uvalive5810 uva12368 Candles
- = =回归。。【UVAlive】6859凸包
- UVALive2536 POJ1248 HDU1015 ZOJ1403 Safecracker【密码+暴力+水题】
- UVALIVE 5000 Underwater Snipers(二分+贪心)
- UVALive-3683 A Scheduling Problem(treedp)
- Confusing Date Format UVALive 7711 给定mm-mm-mm格式的时间。年份(1900-1999)只给了后两位数,问有多少种合法的排列使时间正确。
- UVALive 7345 J - The Hypnotic Spirals
- UVALive - 3266 Tian Ji -- The Horse Racing 贪心
- UVALive - 2191 Potentiometers