Uva 11039 Building designing
2017-02-14 09:36
357 查看
一开始没看到是选数,,,就以为是dp,但是后来看到是选出来排列,那么直接按照绝对值排序之后就加判断就好了。。。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cstdlib>
#include<vector>
#include<queue>
#include<stack>
#include<algorithm>
using namespace std;
#define maxx 500000+10
int n,m,all[maxx];
bool y;
bool cmp(int a,int b)
{
return abs(a)<abs(b);
}
void solve()
{
int flag = 0;
int ans = 0;
for(int i = 1;i<=m;i++)
{
if(flag == 0)
{
if(all[i]>0){
flag = 1;
ans++;
}
if(all[i]<0){
flag = 2;
ans++;
}
}
if(all[i]>0&&flag==2) {ans++; flag = 1;}
if(all[i]<0&&flag==1) {ans++; flag = 2;}
}
cout<<ans<<endl;
}
int main()
{
//freopen("std.in","r",stdin);
cin>>n;
while(n--)
{
memset(f,1,sizeof(f));
cin>>m;
for(int i = 1;i<=m;i++) cin>>all[i];
sort(all+1,all+m+1,cmp);
solve();
}
return 0;
}
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cstdlib>
#include<vector>
#include<queue>
#include<stack>
#include<algorithm>
using namespace std;
#define maxx 500000+10
int n,m,all[maxx];
bool y;
bool cmp(int a,int b)
{
return abs(a)<abs(b);
}
void solve()
{
int flag = 0;
int ans = 0;
for(int i = 1;i<=m;i++)
{
if(flag == 0)
{
if(all[i]>0){
flag = 1;
ans++;
}
if(all[i]<0){
flag = 2;
ans++;
}
}
if(all[i]>0&&flag==2) {ans++; flag = 1;}
if(all[i]<0&&flag==1) {ans++; flag = 2;}
}
cout<<ans<<endl;
}
int main()
{
//freopen("std.in","r",stdin);
cin>>n;
while(n--)
{
memset(f,1,sizeof(f));
cin>>m;
for(int i = 1;i<=m;i++) cin>>all[i];
sort(all+1,all+m+1,cmp);
solve();
}
return 0;
}
相关文章推荐
- UVa11039 - Building designing(排序+贪心)
- UVa 11039
- UVA11039-Building designing
- UVA 11039 - Building designing
- UVa 11039 Building designing (模拟)
- UVA11039
- uva_11039 - Building designing( 基數排序 )
- uva 11039 贪心法
- UVA 11039 - Building designing
- UVA 11039 Building designing .
- UVA - 11039 Building designing
- uva-11039水到渣的题
- ecjtu-summer training #5 B - Building designing UVA - 11039
- uva11039
- uva11039 -Building designing
- UVA - 11039 Building designing 排序
- UVA-11039-Building designing
- Uva Oj 11039 - Building designing
- UVa 11039 - Building designing
- (1.1.10)UVA 11039 Building designing(模拟题)