在牛客上组队参加的第一场比赛,可惜睡觉睡过头了,快结束了才开始做,敲的代码也错误百出,没能AC一道题,补题之后发发题解吧。

Rabbit

题意

思路

代码

Cube

题意

思路

代码

swapping game

题意

思路

代码

Rabbit

题意

给出一串数字,问去掉其中任意一个数后形成的与原来不同的连乘积有多少种。

思路

若原数列有一个零则只有去掉零这一个答案。

若原数列有多个零则无论怎样去连乘积恒为0,故答案为0。

若原数列没有零则除数字1以外不同数字的种类数即为答案。

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{long long n,a[100001],i,cnt=0;cin>>n;set <int> s;for(i=0;i<n;i++){cin>>a[i];if(a[i]==0)  cnt++;          //统计零的个数if(a[i]!=1)  s.insert(a[i]); //统计除1外数字的种类}if(cnt==1)      cout<<1;  else if(cnt>1)  cout<<0;else            cout<<s.size(); return 0;
}

Cube

题意

给出两个正方体的侧面展开图,判断折成的两个正方体是否同构,即判断两个正方体的三组对面是否相同。

思路

根据侧面展开图中间行的块数将其分为中间四块和中间三块两种类型,同时将面序号加2,直接用对面序号乘积来代替对面上的两个数,之后对分别每个正方体的三个乘积进行排序,判读是否相等即可。

代码

#include <bits/stdc++.h>
using namespace std;
int a[100][100],b[100],aa[100][100],bb[100],pt=1,c[3],cc[3];
int main()
{   int cnt1=0,cnt2=0;    for(int i=1;i<=3;i++)             //存第一个正方体for(int j=1;j<=4;j++){ cin>>a[i][j];a[i][j]+=2;if(a[i][j]!=2&&i==2) cnt1++;if(a[i][j]!=2&&i!=2) b[i]=a[i][j];}  for(int i=1;i<=3;i++)            //存第二个正方体for(int j=1;j<=4;j++){ cin>>aa[i][j];aa[i][j]+=2;if(aa[i][j]!=2&&i==2) cnt2++;if(aa[i][j]!=2&&i!=2) bb[i]=aa[i][j];}if(cnt1==4)                   //第一类展开图{ c[1]=b[1]*b[3];    c[2]=a[2][1]*a[2][3];c[3]=a[2][2]*a[2][4];}else if (cnt1==3&&a[2][1]!=2) //第二类展开图{ c[1]=b[1]*a[3][3];c[2]=a[2][1]*a[2][3];c[3]=a[2][2]*a[3][4];}else if(cnt1==3&&a[2][1]==2)  //第三类展开图{ c[1]=b[3]*a[1][2];c[2]=a[2][2]*a[2][4];c[3]=a[2][3]*a[1][1];} if(cnt2==4)                   //第一类展开图{ cc[1]=bb[1]*bb[3];cc[2]=aa[2][1]*aa[2][3];cc[3]=aa[2][2]*aa[2][4];}else if(cnt2==3&&aa[2][1]!=2)  //第二类展开图{ cc[1]=bb[1]*aa[3][3];cc[2]=aa[2][1]*aa[2][3];cc[3]=aa[2][2]*aa[3][4];}else if(cnt2==3&&aa[2][1]==2)  //第三类展开图{ cc[1]=bb[3]*aa[1][2];cc[2]=aa[2][2]*aa[2][4];cc[3]=aa[2][3]*aa[1][1];}sort(c+1,c+4);sort(cc+1,cc+4); //排序for(int i=1;i<=3;i++)if(c[i]!=cc[i]) {pt=0;break;}if(pt==1) cout<<"YES";else cout<<"NO";
}

swapping game

题意

给一个数组,奇数秒交换2n-1,2n位置上的两数,偶数秒交换2n+2,2n+3位置上的两数,若独自一个数一组则不交换.问给定的数组元素经过给定时间后的位置。

思路

先模拟了过程,交上去发现超时,之后打了个表,发现偶数位随时间先左移进行往复的移动,奇数位先右移进行往复的移动,且二者的周期都为2*n,于是分情况讨论奇偶与移动时间,不过思路简单,却bug不断,最后还是附上答案吧了。

代码

#include <bits/stdc++.h>
#define hh '\n'
#define Cap_suleDebug(x) #x
#define debug(x) cout << Cap_suleDebug(x) << " = " << x << hh
#define I scanf
#define O printf
typedef long long ll;
typedef unsigned long long ull;
#define int ll
using namespace std;
// inline ll ri(){ll s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9')s=s*10+ch-'0',ch=getchar();return s*w;}
const int mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;    // 1061109567
const int MAXINT = 0x7FFFFFFF; // 2147483647
typedef pair<int, int> PII;
const int N = 1e6 + 10;int a[N];
void solve()
{int n, k, q;cin >> n >> k >> q;k %= 2 * n;int ans;if (k == 0){cout << q << hh;}else if (k == n){cout << n - q + 1 << hh;}else if (k < n){if (q & 1){if (k >= n - q + 1){k -= n - q + 1;ans = n - k;}else{ans = q + k;}}else{if (k >= q){k -= q;ans = k + 1;}else{ans = q - k;}}cout << ans << hh;}else if (k > n){k -= n;if (q & 1){if (k > n - q){k -= n - q;ans = k;}else{ans = (n - q) - k + 1;}}else{if (k > n - (n - q + 1)){k -= n - (n - q + 1);ans = n - k + 1;}else{ans = (n - q + 1) + k;}}cout << ans << hh;}return;
}
int main()
{
#ifdef testfreopen("in.in", "r", stdin);freopen("out.out", "w", stdout);
#endifint Orz = 1;cin >> Orz;while (Orz--){solve();}return 0;
}

2021年陕西省大学生程序设计竞赛(重现赛)相关推荐

  1. FZU Problem 2221 RunningMan(思维考查)——第六届福建省大学生程序设计竞赛-重现赛

    此文章可以使用目录功能哟↑(点击上方[+])  FZU Problem 2221 RunningMan Accept: 0    Submit: 0 Time Limit: 1000 mSec     ...

  2. 【超好懂的比赛题解】“山大地纬杯”第十二届山东省ICPC大学生程序设计竞赛(正式赛)

    title : "山大地纬杯"第十二届山东省ICPC大学生程序设计竞赛(正式赛) date : 2022-5-30 tags : ACM,题解,练习记录 author : Linn ...

  3. 2021 ICPC 江西省大学生程序设计竞赛(正式赛)

    K.Many Littles Make a Mickle(签到题) 题目大意:有T组测试样例,每一组测试样例给一个n,一个m,从1-n层,第i层有i*i个房间,每个房间居住m个人,问一共能住多少人? ...

  4. 2021安徽省大学生程序设计竞赛正式赛:D 持续攻击

    题目描述 血魔遇到了N个敌人.初始血魔生命值为M,每秒钟血魔的生命值会减少1.如果血魔的生命值变为0,血魔会立刻消失,但在此之前他可以击杀敌人来恢复生命值.对于第i个敌人需要攻击Ti次才能杀死,血魔每 ...

  5. 2021 ICPC 江西省大学生程序设计竞赛(热身赛)【完结】

    热身赛,都是练手速的水题 目录 Abnormal unity Dripping Water Wears Through a Stone Follow me Strength team Abnormal ...

  6. 2021年中国大学生程序设计竞赛 女生专场 - 热身赛 Problem C. 口算训练(质因子分解)

    题目分析:判断 xxx 是 yyy 的倍数,等价于质因子分解后, yyy 中的每个质因子的出现次数都小于等于其在 xxx 中的出现次数. 那么对于每次询问 [l,r,d][l,r,d][l,r,d], ...

  7. 福州大学第十四届程序设计竞赛-重现赛(Record)

    Problem A Salty Fish Accept: 108    Submit: 400 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Pr ...

  8. 湖南师范大学2018年大学生程序设计竞赛新生赛 A 齐神和心美的游戏【hash】

    [链接]:A [题意]:给你n个数的序列和k.判断是否可以三个数组成k(同一个数可以拿多次) [分析]:每个数vis记录一下.2层循环.两数之和不超过k以及剩下的数出现在序列中那么ok. [代码]: ...

  9. 第三届全国中医药院校大学生程序设计竞赛 (正式赛)

    目录 Problem B. 绿地装饰(暴力模拟+思维) E 解密(水+有点巧妙的解法) F: 巍巍岳麓(类似最小生成树) H: 百舸争流(贪心) Problem B. 绿地装饰(暴力模拟+思维) 时间 ...

最新文章

  1. 最大民科组织被取缔,鸡蛋返生、推翻相对论、量子速读都是他们干的
  2. 什么是二进制数 为什么用二进制数表示计算机信息?
  3. XSLT模板转换XML文档
  4. ElasticSearch Java Api(一) -创建索引
  5. 抱歉(HDU-1418)
  6. 【Python3网络爬虫开发实战】1.4.2-MongoDB安装
  7. 《团对-学生成绩管理-开发环境搭建过程》
  8. 关闭 启动_win10系统关闭快速启动功能教程
  9. plpgsql语句的兼容性
  10. Python进阶(零)字典、缺省参数、多值参数
  11. matlab转python很难吗_MATLAB在逐渐被Python淘汰吗?
  12. 数据库:码 属性 候选码 主码的关系
  13. 西门子Step7和TIA软件“交叉引用”的使用
  14. mysql目录结构与源码
  15. 保姆级笔记-佳能Canon LBP2900在Win10安装驱动
  16. 1.2 控制LED闪烁
  17. 索尼计算机bios正确设置,索尼笔记本电脑怎么进入Bios,小编教你如何四步完成
  18. 迅搜 php,XunSearch(迅搜) | 搜索
  19. 【ospf路由计算(一类LSA-router、二类LSA-Network、三类LSA-sum-Net)】-20211228-30
  20. Outlook2010客户端—搜索/检索不到近期的邮件

热门文章

  1. properties中文乱码快速处理
  2. 编写程序,创建如下图所示的图形界面。(要求实现功能)
  3. 别再说不了解非接触液位传感器了?只需三分钟就能搞懂
  4. addonsmaker怎么制作_addons制作器 v1.14.3 苹果IOS版
  5. 2.3 感兴趣区域(ROI)
  6. 端渲染 or 流渲染?开发架构该如何选择?
  7. D3D12渲染技术之寻址模式
  8. 计算机主板 也叫系统版,计算机主板的型号是什么?
  9. 学习 正则表达式 js java c# python 通用
  10. android 系统音量的刻度,android中获取屏幕信息,做标准刻度的尺子