Codeforces Round #160 (Div. 2) B - Roma and Changing Signs
生活随笔
收集整理的這篇文章主要介紹了
Codeforces Round #160 (Div. 2) B - Roma and Changing Signs
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:http://codeforces.com/contest/262/problem/B
n個數按不遞減的順序排好?k次取相反數
思路:一邊讀入數據,一邊做取反操作
一開始忽略了有k>n且所有數為負數的情況,導致沒有進行k次取反,只進行了n次。
#include <iostream> #include <cstdlib> #include <cmath> using namespace std;int main() {int n,k;long long sum=0;cin >> n >> k;int min=10005;bool odd=false;for(int i=0;i<n;i++){int temp;cin >> temp;if(min>abs(temp)) min=abs(temp);if(k==0) sum+=temp;else if(temp<0){sum-=temp;k--;}else if(temp>0){sum+=temp;if(k%2==0) k=0;else {k=0;odd=true;}}}if (k>0) //此處讓我WA數次{if(k%2==0) odd=false;else odd=true;}if(odd) sum-=2*min;cout << sum ;return 0; }?
轉載于:https://www.cnblogs.com/danielqiu/archive/2013/01/16/2863325.html
總結
以上是生活随笔為你收集整理的Codeforces Round #160 (Div. 2) B - Roma and Changing Signs的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android位运算简单讲解
- 下一篇: Java 生成有序 UUID