zoukankan      html  css  js  c++  java
  • codeforces gym 100187M Heaviside Function

    //大概就是没想起来怎么做

    解法:首先观察seitan方程,发现我们要找的是满足seitan(si*x-ai)=1的方程数,即si*x-ai>=0的方程数,因为si=1 or -1,于是分类讨论,当si=1时相当于给定每个x求满足ai<=x的ai数,当si=-1时相当于给定每个x求ai<=-1的方程数,于是我们把si=1和si=-1时的系数ai分别用两个数组记录下来,然后排序,用upper_bound分别求出两种情况下的解,加起来就是答案

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<cstring>
     6 #include<cstdlib>
     7 #include<queue>
     8 #include<vector>
     9 #include<map>
    10 #include<stack>
    11 #include<string>
    12 #define LL long long
    13 
    14 using namespace std;
    15 
    16 int n,m;
    17 int t1=0,t2=0;
    18 int f1[200001],f2[200001];
    19 
    20 int main(){
    21     scanf("%d",&n);
    22     for (int i=0;i<n;i++){
    23             int x,y;
    24             scanf("%d%d",&x,&y);
    25             if (x==1)
    26                 f1[t1++]=y;
    27             else
    28                 f2[t2++]=y;
    29     }
    30     sort(f1,f1+t1);
    31     sort(f2,f2+t2);
    32     scanf("%d",&m);
    33     for (int i=0;i<m;i++){
    34             int x;
    35             scanf("%d",&x);
    36             int ans1=upper_bound(f1,f1+t1,x)-f1;
    37             int ans2=upper_bound(f2,f2+t2,-x)-f2;
    38             printf("%d
    ",ans1+ans2);
    39     }
    40     return 0;
    41 }
    42 /*
    43 6
    44 1 3
    45 -1 2
    46 1 9
    47 -1 2
    48 1 7
    49 -1 2
    50 8
    51 0 12 2 8 4 -3 7 9
    52 */
    View Code
  • 相关阅读:
    CSS3 Transitions 你可能不知道的知识点
    css规范
    移动应用表单设计秘籍
    SVN和Git的一些用法总结
    让Terminal显示git分支
    JavaScript正则表达式下——相关方法
    requests模块
    flask模块
    os模块
    简单的socket编程
  • 原文地址:https://www.cnblogs.com/baby-mouse/p/4657753.html
Copyright © 2011-2022 走看看