zoukankan      html  css  js  c++  java
  • 2019佳木斯集训 Day7

        T1

      不算很水的数学题,难度中

      思路:我们首先发现除了2xy以外剩下的加和必定是个奇数

    然后我们发现r是偶数时无解,并且r<=4时无解,其余情况就是

    3+一个偶数,显然可以表达所有情况,所以直接输出1和(r-3)/2即可

      
    1 #include <bits/stdc++.h>
    2 using namespace std;
    3 long long r;
    4 int main(){
    5     scanf("%lld",&r);
    6     if(r%2==0||r<=5) printf("NO");
    7     else printf("1 %lld",(r-3)/2);
    8     return 0;
    9 }
    T1-签到题

        T2

      垃圾题,臭题,题面都能给错!!!(要不然我就A了!!)

      思路:暴力跑模拟就行,需要注意,班长无论如何都不会去0位置

    所以一旦班长跑到0要变到1.

      
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int n,m,k,t,x,y,l,r;
     4 int main(){
     5     scanf("%d%d%d%d",&n,&m,&k,&t);
     6     for(register int i=1;i<=t;i++){
     7         scanf("%d%d",&x,&y);
     8         if(x==0){
     9             if(y<=m){
    10                 m-=y;
    11                 n-=y;
    12             }
    13             else if(y>m){
    14                 n-=(n-y);
    15             }
    16         }
    17         if(x==1){
    18             if(y<=m){
    19                 n++,m++;
    20             }
    21             if(y>m) n++;
    22         }
    23         if(m==0) m=1;
    24         printf("%d %d
    ",n,m);
    25     }
    26     return 0;
    27 }
    T2-权力

        T3

      我们有时需要简便的暴力,来解决暴力问题

      思路:我们预处理把横的和竖的分开存好,然后暴力跑O(n^3)

    每次枚举两条横着的边,再挨个遍历剩下的竖边,如果竖边能切割两条

    横边,就累加一个num,每跑完一条竖边,ans+=num*(num-1)/2即可;

      
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 struct node{
     4     int yu,yd,x;
     5 }shu[1010];
     6 struct nodee{
     7     int xl,xr,y;
     8 }heng[1010];
     9 int he,sh;
    10 int n,a,b,c,d,num;
    11 long long ans;
    12 int main(){
    13     scanf("%d",&n);
    14     for(register int i=1;i<=n;i++){
    15         scanf("%d%d%d%d",&a,&b,&c,&d);
    16         if(a==c){
    17             sh++;
    18             shu[sh].x=a;
    19             shu[sh].yu=max(b,d);
    20             shu[sh].yd=min(b,d);
    21             continue;
    22         }
    23         he++;
    24         heng[he].y=b;
    25         heng[he].xr=max(a,c);
    26         heng[he].xl=min(a,c);
    27     }
    28     for(register int i=1;i<=he;i++){
    29         for(register int j=i+1;j<=he;j++){
    30             num=0;
    31             int emm=max(heng[i].y,heng[j].y);
    32             int err=min(heng[i].y,heng[j].y);
    33             int ess=max(heng[i].xl,heng[j].xl);
    34             int epp=min(heng[i].xr,heng[j].xr);
    35             if(epp<=ess)continue;
    36             for(register int k=1;k<=sh;k++){
    37                 if(shu[k].yu>=emm&&shu[k].yd<=err&&shu[k].x>=ess&&shu[k].x<=epp) num++;
    38             }
    39             ans+=num*(num-1)/2;
    40         }
    41     }
    42     printf("%lld",ans);
    43     return 0;
    44 }
    T3-长方形

      end;

  • 相关阅读:
    错误与异常_2-11选择题
    错误与异常_2-10选择题
    错误与异常_2-8选择题
    错误与异常_2-7选择题
    C#定时器
    C#动态webservice调用接口
    C# webservice返回Xml格式文件
    C#创建简单的Xml文件
    获取数据库中指定类型的数据库名称
    C#生成Xml以UTF-8无BOM格式编码
  • 原文地址:https://www.cnblogs.com/liuhailin/p/11291213.html
Copyright © 2011-2022 走看看