首页 > 其他分享 >8.1日

8.1日

时间:2023-08-01 21:12:56浏览次数:34  
标签:8.1 ok int long css define

一、队友拉了一场数论赛,打了三个小时,组合数,快速幂。

二、自己又刷了一道cf1300分的较难的题目。

#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
#define endl '\n'
#define pq priority_queue
using namespace std;
typedef pair<int,int> pii;

//仅仅出现一次的既让p[i]=q[i]
//出现两次和0次的数的个数应该相等,然后记录零次和一次的数和下标

void solve()
{
    int n;cin>>n;
    vector<int>a(n);
    for(int i=0;i<n;i++){
      cin>>a[i];
      --a[i];
    }
    vector<int>cnt(n);
    vector<vector<int>>at(n);
    for(int i=0;i<n;i++)
    {
      cnt[a[i]]+=1;
      at[a[i]].push_back(i);
    }
    vector<int>twos,zeros;
    bool ok=true;
    for(int i=0;i<n;i++)
    {
      if(cnt[i]==0)
        zeros.push_back(i);
      else if(cnt[i]==2)
        twos.push_back(i);
      else if(cnt[i]>2){
        ok=false;
        break;
      }
    }
    if(!ok){
      cout<<"NO"<<endl;return;
    }
    auto p=a;
    auto q=a;
    int k=twos.size();
    for(int i=0;i<k;i++)
    {
      if(twos[i]<zeros[i]){
        ok=false;break;
      }
      int v=twos[i];//存在两次的那个数
      p[at[v][0]]=zeros[i];
      q[at[v][1]]=zeros[i];
    }
    if(!ok){
      cout<<"NO"<<endl;
    }else{
      cout<<"YES"<<endl;
      for(int i=0;i<n;i++){
        cout<<p[i]+1<<' ';
      }cout<<endl;
      for(int i=0;i<n;i++){
        cout<<q[i]+1<<' ';
      }cout<<endl;
    }
}

signed main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t;cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}

 

三、学二分图最大匹配和css。

四、明天打算cf的刷题量达到275+,然后开始复习Java学css,准备开学考试和小学期。

标签:8.1,ok,int,long,css,define
From: https://www.cnblogs.com/litianyu1969/p/17599100.html

相关文章

  • 8.1 后记
    T1简单题,全排后中缀转后缀T2优化1:从\((n,m)\)点开搜优化2:背包预处理能拼出哪些数T3但这是在讲自动机正解:T4正解(点击图片):CF912E一句话题解:meetinthemiddle+二分CF478E分成左边6位,右边7位右边维护\(\modn\)首位首位与二位大小关系左边暴力爬山算法......
  • 8.1 day9搜索
    0+50+100+0=150第一题本地没re,交上去re了,发现是函数int没returnO2导致的,但是本地也开了O2,没有问题T1中缀转后缀,然后全排列T2枚举每一位是否填1,倒序开搜+小剪枝即可,最科学的是一种背包的剪枝,和我最终提交代码很像,但是我的优化还不够T3ida,限制深度,个数可看成矩阵乘法T4正......
  • 2023。8.1
    学习java中的类面向对象与面向过程面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象:强调具备了功能的对象,以类/对象为最小单位类与对象的关系类:对一类事物的描述,是抽象的、概念上的定义对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)面向对象......
  • MySQL 8.1正式发行!有哪些值得关注的新功能?
    千呼万唤始出来的新版本MySQL8.1及MySQL8.0.34于2023年7月18日正式发行。从此,MySQL将开启创新版和稳定版同时发行的阶段。MySQL8.1是MySQL的首个创新版,该版本主要增加了如下功能: 捕捉EXPLAINFORMAT=JSON输出,为EXPLAINFORMAT=JSON增加INTO选项,可以将JSON格式的输......
  • MySQL 8.1正式发行!有哪些值得关注的新功能?
    千呼万唤始出来的新版本MySQL8.1及MySQL8.0.34于2023年7月18日正式发行。从此,MySQL将开启创新版和稳定版同时发行的阶段。MySQL8.1是MySQL的首个创新版,该版本主要增加了如下功能: 捕捉EXPLAINFORMAT=JSON输出,为EXPLAINFORMAT=JSON增加INTO选项,可以将JSON格式的输......
  • MySQL 8.1正式发行!有哪些值得关注的新功能?
    千呼万唤始出来的新版本MySQL8.1及MySQL8.0.34于2023年7月18日正式发行。从此,MySQL将开启创新版和稳定版同时发行的阶段。MySQL8.1是MySQL的首个创新版,该版本主要增加了如下功能: 捕捉EXPLAINFORMAT=JSON输出,为EXPLAINFORMAT=JSON增加INTO选项,可以将JSON格式的输......
  • ApacheCN 活动汇总 2019.8.16
    公告欢迎大家在我们平台上投放广告。如果你希望在我们的专栏、文档或邮件中投放广告,请准备好各种尺寸的图片和专属链接,我们组织了一个开源互助平台,方便开源组织和大V互相认识,互相帮助,整合资源。请回复这个帖子并注明组织/个人信息来申请加入。请回复这个帖子来推荐希望翻译的内容......
  • 扬州高防服务器租用,扬州BGP高防IP段43.248.184.X
    专业做扬州高防BGP服务器,大带宽、高防御、低延迟、稳定流畅、免费测试。扬州数据中心介绍1、运河西路机房237号数据中心,机柜数量400-500个,位于4楼6楼,每层200多个标准机柜,机柜42U。2、维扬路107号数据中心,400-500个机柜,位于1楼2楼,每层200多个标准机柜。3、扬子江南路9号电信数据中心......
  • 8.1 物理和虚拟寻址
    计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组。每字节都有一个唯一的物理地址。使用虚拟寻址,CPU通过生成一个虚拟地址(VirtualAddress,VA)来访问主存,这个虚拟地址在被送到内存之前先转换成适当的物理地址。将一个虚拟地址转换为物理地址的任务叫做地址翻译(......
  • php:获取https证书的信息(PHP 8.1.1)
    一,代码:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960<?php//得到证书的信息functiongetCertInfo($url){    if(!ex......