IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Codeforces Round #773 (Div. 2) A-C -> 正文阅读

[C++知识库]Codeforces Round #773 (Div. 2) A-C

毒瘤场,题都挺变态的。一小时ac前三题(时间全花在读题上了),然后罚坐(这次的D实在太恶心人了,补题也不想补了。。。)
A. Hard Way
几何题,题目很长很吓人,其实不难。给出三角形的三个顶点,问三角形的三条边上的点是否可以和y=0连成一条直线,这条直线不能穿过三角形内部。问三角形的边上存在这样一条直线的点的总长度是多少。
样例的小数点是唬人的,答案就是整数。只有当一条边和y=0平行并且这条边对应的角在下面这种情况这条边没有直线,除此之外所有情况全有直线。

#include <bits/stdc++.h>
#define endl '\n'
#define INF 2147483647
using namespace std;
typedef long long ll;
const int N=200001;
const int mod=1e9+7;
ll a[N],b[N];
int main()
{
   ios_base::sync_with_stdio(false);
   cin.tie(NULL);
   int t,n,i,j;
   cin>>t;
   while(t--)
   {
       ll x1,x2,x3,y1,y2,y3;
       cin>>x1>>y1;
       cin>>x2>>y2;
       cin>>x3>>y3;
       ll ans=0;
       if(y1==y2&&y1!=0&&y1>y3) ans=ans+abs(x2-x1);
       if(y1==y3&&y1!=0&&y1>y2) ans=ans+abs(x3-x1);
       if(y3==y2&&y2!=0&&y3>y1) ans=ans+abs(x3-x2);
       cout<<ans<<endl;
   }
}

B. Power Walking
这道题的题目我读了二十分钟才发现漏看了个单词,这算这场比赛最大的失误了。
给出一个长度为n的数组,输出将这n个数字全部分配给k个孩子(k的大小为1-n)得到的这k个孩子不同的ai数量的和的最小值。
贪心+map判重,贪心策略就是尽量把不重复的数字分出去,把重复的数字留给同一个孩子。这样就可以保证这个孩子的不重复数字最小,也就是所有孩子的和的最小。

#include <bits/stdc++.h>
#define endl '\n'
#define INF 2147483647
using namespace std;
typedef long long ll;
const int N=300001;
const int mod=1e9+7;
ll a[N],b[N];
int main()
{
   ios_base::sync_with_stdio(false);
   cin.tie(NULL);
   int t,n,i,j;
   cin>>t;
   while(t--)
   {
     cin>>n;
     map<int,int>c;
     ll ans=0;
     for(i=1;i<=n;i++)
     {
         cin>>a[i];
         if(c[a[i]]==0)
         {
             ans++;
             c[a[i]]++;
         }
         else
            c[a[i]]++;
     }
     cout<<ans<<" ";
     for(int k=2;k<=n;k++)
     {
         if(k<=ans) cout<<ans<<" ";
         if(k>ans)  cout<<k<<" ";
     }
     cout<<endl;
   }
}

C. Great Sequence
给出大小为n的数组和倍数x,如果数组中的两个数字满足倍数x的关系那么就可以把他们组合到一起。如果数组中的一个数字在数组中找不到满足x的关系了,就要添一个数字给它组合起来,输出最少要添多少个数字才能把数组中的所有数字组合在一起。
sort+map判重,先sort一下让数组有序防止它乱组合而达不到最优的情况。然后遍历判重看看有多少需要添数字的,尽量用除法,听说乘法好多爆int被fst的,还好不关我事。。。

#include <bits/stdc++.h>
#define endl '\n'
#define INF 2147483647
using namespace std;
typedef long long ll;
const int N=200001;
const int mod=1e9+7;
ll a[N],b[N];
int main()
{
   ios_base::sync_with_stdio(false);
   cin.tie(NULL);
   int t,n,i,j;
   cin>>t;
   while(t--)
   {
     int x;
     cin>>n>>x;
     map<int,int>c;
     ll sum=n;
     ll ans=0;
     for(i=1;i<=n;i++)
     {
         cin>>a[i];
     }
     sort(a+1,a+n+1);
     for(i=1;i<=n;i++)
     {
         if(sum==0) break;
         if(a[i]%x==0)
         {
             int u=a[i]/x;
             if(c[u]>0)
             {
                 c[u]--;
                 sum=sum-2;
                 continue;
             }
             else
                c[a[i]]++;
         }
         if(a[i]%x!=0)
            c[a[i]]++;
     }
     cout<<sum<<endl;
   }
}

.
.
最近状态慢慢回来了,希望下次也能继续上分,快变色了(祈祷
还有四级今天出分了,考的还不错,希望没过的同学们下次能有个好运气

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:12:28  更:2022-02-26 11:14:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:05:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码