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

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;
    }
  }
}
全部评论

相关推荐

06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
苍蓝星上艾露:给它们能的,一群dinner牛马挥刀向更弱者罢了。我写的开源求职AI co-pilot工具,优化你的简历,找到你匹配的岗位,定制你的简历,并让你做好面试准备https://github.com/weicanie/prisma-ai
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务