杭电暑假多校集训营第八场

Clockwise or Counterclockwise
根据点C在AB向量的方位可以确定。

#include <iostream>
#define ll long long
using namespace std;
int main(){
    int n;
    cin>>n;
    int x1,y1,x2,y2,x3,y3;
    while(n--){
        cin>>x1>>y1>>x2>>y2>>x3>>y3;
        ll A=x2-x1;
        ll B=y2-y1;
        ll C=x3-x1;
        ll D=y3-y1;
        ll num1=A*D;
        ll num2=B*C;
        if(num1-num2>0)cout << "Counterclockwise\n";
        else    cout<< "Clockwise\n";
    }
    return 0;
 } 

Fluctuation Limit
之前写题忘记从右向左约束,实际上应将区间从左往右,从右往左约束一篇,每个区间的范围选择上一区间(左边界减k,右边界加k)与当前区间的交集。

#include <iostream>
#include <cstring>
using namespace std;

const int  maxn=1e6+10;
int l[maxn], r[maxn];

int main() {
  int t;
  cin >> t;
  while (t--) {
    int n, k;
    cin >> n >> k;
    for (int i = 1; i <= n; i++) {
      cin >> l[i] >> r[i];
    }
    for (int i = 1; i < n; i++) {
      l[i + 1] = max(l[i + 1], l[i] - k);
      r[i + 1] = min(r[i + 1], r[i] + k);
    }
    for (int i = n; i > 1; i--) {
      l[i - 1] = max(l[i - 1], l[i] - k);
      r[i - 1] = min(r[i - 1], r[i] + k);
    }
    bool flag = true;
    for (int i = 1; i <= n; ++i) {
      if (l[i] > r[i]) {
        flag = false;
      }
    }
    if (flag) {
      cout << "YES" << endl;
      for (int i = 1; i <= n; ++i) {
        cout << l[i];
        if (i < n) {
          cout << " ";
        } else {
          cout << endl;
        }
      }
    } else {
      cout << "NO" << endl;
    }
  }
}
全部评论

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务