生活随笔
收集整理的這篇文章主要介紹了
Codeforces Round #636 (Div. 3)(ABC)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
A. Candies
水題,暴力即可
代碼如下:
#include<bits/stdc++.h>
#define ll long long
using namespace std
;int n
;int main()
{int t
;scanf("%d",&t
);while(t
--){scanf("%d",&n
);int sum
=0;int cnt
=0;while(1){sum
+=(1<<cnt
);if(n
%sum
==0&&sum
!=1){cout
<<n
/sum
<<endl
;break;}cnt
++;}}return 0;
}
Balanced Array CodeForces - 1343B
思路:水題不解釋
代碼如下:
#include<bits/stdc++.h>
#define ll long long
using namespace std
;vector
<int> ans
;
int n
;int main()
{int t
;scanf("%d",&t
);while(t
--){scanf("%d",&n
);if((n
/2)&1) cout
<<"NO"<<endl
;else{cout
<<"YES"<<endl
;for(int i
=1;i
<=n
/2;i
++) cout
<<2*i
<<" ";for(int i
=1;i
<n
/2;i
++) cout
<<2*i
-1<<" ";cout
<<n
+n
/2-1<<endl
;}}return 0;
}
Alternating Subsequence
思路:題目限定了最長,那么我們就看原序列可以分成多少個正-負(fù)或者負(fù)-正的段,每個段取最大值就可以了。
代碼如下:
#include<bits/stdc++.h>
#define ll long long
using namespace std
;const int maxx
=2e5+100;
int a
[maxx
];
int n
;int main()
{int t
;scanf("%d",&t
);while(t
--){scanf("%d",&n
);int flag
;ll sum
=0;int x
,_max
=-1e9-1;for(int i
=1;i
<=n
;i
++) scanf("%d",&a
[i
]);a
[n
+1]=0;for(int i
=1;i
<=n
+1;i
++){x
=a
[i
];if(i
==1) _max
=max(_max
,x
),flag
=x
>0?1:-1;else if((flag
>0&&x
>0)||(flag
<0&&x
<0)) _max
=max(_max
,x
);else{sum
+=(ll
)_max
;_max
=x
;flag
=-flag
;}}cout
<<sum
<<endl
;}return 0;
}
努力加油a啊,(o)/~
總結(jié)
以上是生活随笔為你收集整理的Codeforces Round #636 (Div. 3)(ABC)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。