C.小迢的盒子

题目链接



解法1:稍微快一点

#include <bits/stdc++.h>
using namespace std;
string out, s = "TYUTICPC";
int n, mid, len, cnt;
string f(int y, char c) {string full(mid, '*'), blank(mid, ' '), blank1(len - 2, ' '), ans;if (y == 0 && (c == 'T' || c == 'I' || c == 'C' || c == 'P') ||y == mid && c == 'P' ||y == len - 1 && (c == 'U' || c == 'I' || c == 'C'))return full + "*" + full;  //写一横if (y && (c == 'T' || c == 'I') || y >= mid && c == 'Y')return blank + "*" + blank;if (y && c == 'C' || c == 'P' && y > mid)return "*" + blank + blank;if (c == 'U' || c == 'P' && y < mid)return "*" + blank1 + "*";for (int i = 0; i < len; i++)ans += " *"[i == y || y == len - 1 - i];return ans;  //写Y的上半部分
}
int main() {while (cin >> n) {if (cnt++)cout << "\n";mid = n + 1, len = 3 + 2 * n;for (int i = 0; i < len; i++) {out = "";for (int j = 0; j < 8; j++)out += " |"[!j] + f(i, s[j]);cout << out << "\n";}}
}

解法二:稍微慢一点

#include <iostream>
using namespace std;
int n;
void print1() {cout << "|";for (int i = 1; i <= 2 * n + 3; i++)cout << '*';  //第一行的T的上面cout << " *";for (int i = 1; i <= 2 * n + 1; i++)cout << ' ';  //第一行的Y的上面cout << "* *";for (int i = 1; i <= 2 * n + 1; i++)cout << ' ';  //第一行的U的上面cout << "* ";for (int i = 1; i <= 2 * n + 3; i++)cout << '*';  //第一行的T的上面cout << ' ';for (int i = 1; i <= 2 * n + 3; i++)cout << '*';cout << ' ';for (int i = 1; i <= 2 * n + 3; i++)cout << '*';cout << ' ';for (int i = 1; i <= 2 * n + 3; i++)cout << '*';cout << ' ';for (int i = 1; i <= 2 * n + 3; i++)cout << '*';cout << "\n";
}
void print2() {for (int l = 1; l <= n; l++) {cout << '|';for (int i = 1; i <= n + 1; i++)cout << ' ';cout << '*';for (int i = 1; i <= n + 2 + l; i++)cout << ' ';cout << '*';for (int i = 1; i <= 1 + 2 * n - 2 * l; i++)cout << ' ';cout << '*';for (int i = 1; i <= l + 1; i++)cout << ' ';cout << '*';for (int i = 1; i <= 2 * n + 1; i++)cout << ' ';  // U的上面cout << "* ";for (int i = 1; i <= n + 1; i++)cout << ' ';cout << '*';for (int i = 1; i <= n + 2; i++)cout << ' ';for (int i = 1; i <= n + 1; i++)cout << ' ';cout << '*';for (int i = 1; i <= n + 2; i++)cout << ' ';cout << '*';for (int i = 1; i <= 2 * n + 3; i++)cout << ' ';cout << '*';for (int i = 1; i <= 2 * n + 1; i++)cout << ' ';cout << "* *";for (int i = 1; i <= 2 * n + 2; i++)cout << ' ';cout << '\n';}
}
void print3() {cout << '|';for (int i = 1; i <= n + 1; i++)cout << ' ';cout << '*';for (int i = 1; i <= 3 + n * 2; i++)cout << ' ';cout << '*';for (int i = 1; i <= n + 2; i++)cout << ' ';cout << '*';for (int i = 1; i <= 1 + n * 2; i++)cout << ' ';cout << '*';for (int i = 1; i <= 2 + n; i++)cout << ' ';cout << '*';for (int i = 1; i <= 3 + n * 2; i++)cout << ' ';cout << '*';for (int i = 1; i <= n + 2; i++)cout << ' ';cout << '*';for (int i = 1; i <= 3 + n * 2; i++)cout << ' ';for (int i = 1; i <= 3 + n * 2; i++)cout << '*';cout << " *";for (int i = 1; i <= 2 + n * 2; i++)cout << ' ';cout << '\n';
}
void print4() {for (int l = 1; l <= n; l++) {putchar('|');for (int i = 1; i <= n + 1; i++)putchar(' ');putchar('*');for (int i = 1; i <= 3 + n * 2; i++)putchar(' ');putchar('*');for (int i = 1; i <= n + 2; i++)putchar(' ');putchar('*');for (int i = 1; i <= 1 + n * 2; i++)putchar(' ');putchar('*');for (int i = 1; i <= 2 + n; i++)putchar(' ');putchar('*');for (int i = 1; i <= 3 + n * 2; i++)putchar(' ');putchar('*');for (int i = 1; i <= n + 2; i++)putchar(' ');putchar('*');for (int i = 1; i <= 3 + n * 2; i++)putchar(' ');putchar('*');for (int i = 1; i <= 3 + n * 2; i++)putchar(' ');putchar('*');for (int i = 1; i <= 2 + n * 2; i++)putchar(' ');putchar('\n');}
}
void print5() {putchar('|');for (int i = 1; i <= n + 1; i++)putchar(' ');putchar('*');for (int i = 1; i <= 3 + n * 2; i++)putchar(' ');putchar('*');for (int i = 1; i <= n + 2; i++)putchar(' ');for (int i = 1; i <= 3 + n * 2; i++)putchar('*');for (int i = 1; i <= n + 2; i++)putchar(' ');putchar('*');for (int i = 1; i <= n + 2; i++)putchar(' ');for (int i = 1; i <= 3 + n * 2; i++)putchar('*');putchar(' ');for (int i = 1; i <= 3 + n * 2; i++)putchar('*');printf(" *");for (int i = 1; i <= 3 + n * 2; i++)putchar(' ');for (int i = 1; i <= 3 + n * 2; i++)putchar('*');printf("\n\n");
}
int main() {while (cin >> n) {print1(), print2(), print3(), print4(), print5();}return 0;
}

题解:找到规律暴力输出就行……

K.库特莉亚夫卡的排序

题目链接



#include <bits/stdc++.h>
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
#include <cmath>
#include <bitset>
#include <stack>
#include <set>
#include <map>
#include <random>
using namespace std;
typedef long long ll;
//typedef pair<ll,int> P;
const int INF=0x3f3f3f3f;
const ll mod=1e9+7;
template<class A>void read(A&a){a=0;int c=getchar(),f=0;for(;!isdigit(c);c=getchar()) f|=c=='-';for(;isdigit(c);c=getchar()) a=a*10+(c^48);if(f) a=-a;
}
template<class A,class ...B>
void read(A&a,B&...b){read(a);read(b...);}
//read(x,y,z);
template<class T>
inline void print(T x)
{if(x<0) x=~x+1,putchar('-');if(x>9) print(x/10);putchar(x%10+'0');
}const int N=100000+10;
int n,m;
int a[N],f[N];
vector<int> vec[N];
int id[N];
int getf(int x)
{if(f[x]==x) return x;else return f[x]=getf(f[x]);
}void unio(int x,int y)
{int fx=getf(x),fy=getf(y);if(fx==fy) return ;f[fx]=fy;
}int main()
{read(n,m);for(int i=1;i<=n;i++) read(a[i]),f[i]=i;for(int i=1;i<=m;i++){int x,y;read(x,y);unio(x,y);}for(int i=1;i<=n;i++){id[i]=getf(i);vec[id[i]].push_back(a[i]);}for(int i=1;i<=n;i++){if(vec[i].size()) sort(vec[i].begin(),vec[i].end());}for(int i=n;i>=1;i--){a[i]=*vec[id[i]].rbegin();vec[id[i]].pop_back();}int f=0;for(int i=2;i<=n;i++){if(a[i]>=a[i-1]) ;else {f=1;break;}}if(f) printf("No\n");else printf("Yes\n");
}

题解:好像是用了并查集吧,没仔细看过

L.密码

题目链接


#include<bits/stdc++.h>
using namespace std;const int mod=1e9+7;
int get(int n)
{int i,s=0;for(i=n/4*4;i<=n;i++)s^=i;return s;
}
int main()
{int n,l,r,ans=0;scanf("%d",&n);while(n--){scanf("%d%d",&l,&r);ans=(ans+(get(l-1)^get(r)))%mod;}printf("%d\n",ans);return 0;
}

题解:区间异或和的规律就是每4个数(从0开始的连续4个数)异或和为0,于是我们只要求最后面几个数的异或和就行了。

第三届太原理工大学程序设计竞赛新生赛(未完结)相关推荐

  1. 哈尔滨理工大学软件与微电子学院程序设计竞赛(新生赛)

    关于哈尔滨理工大学软件与微电子学院程序设计竞赛(新生赛) 下午五点四十开始的比赛,五点二十我才刚刚抽完血,实在是有点难顶,再加上还没有吃饭,刚开始做题的时候还真是有点发懵,胳膊也很难受. 这应该是我第 ...

  2. 2020 年 “联想杯”全国高校程序设计在线邀请赛暨第三届上海理工大学程序设计竞赛题解

    2020 年 "联想杯"全国高校程序设计在线邀请赛暨第三届上海理工大学程序设计竞赛题解 萌新又来写题解啦 原题链接 (不是按照题号顺序来的QWQ) L. Lottery Ticke ...

  3. 2021年太原理工大学程序设计竞赛等获奖总结

    第45届国际大学生程序设计竞赛(ICPC)昆明站 铜奖1枚,优胜奖2枚 (2021/4/3线上赛) 第45届国际大学生程序设计竞赛(ICPC)银川站 银奖2枚,铜奖2枚 (2021/5/16现场赛) ...

  4. 哈尔滨理工大学软件与微电子学院程序设计竞赛(新生赛) -补档

    time:2019.11.08 题目较多,所以使用目录. 文章目录 Problem A:[NowCoder54536 小乐乐学编程](https://ac.nowcoder.com/acm/probl ...

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

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

  6. 西北大学第四届程序设计竞赛新生赛 J 八意永琳的药房

    这道题看了大佬的代码,发现思路居然这么奇妙. 合并两个数组. 我的想法:暴力 时间复杂发O(n^2),绝对T. 大佬的想法:bitset 时间复杂度 O(n).     Orz Orz Orz . b ...

  7. 西北大学第四届程序设计竞赛新生赛(同步赛)(J)

    链接:https://ac.nowcoder.com/acm/contest/321/J 来源:牛客网 众所周知,八意永琳擅长制作药物. 今天八意永琳又制作了很多份药物,但是由于材料组成的不同,最终的 ...

  8. 湖南师范大学2018年大学生程序设计竞赛新生赛 J 名哥的完全平方数 莫队算法

    题目链接:点击打开链接 题目描述 511 CF第一人名哥不上紫名不实习! 这天,名哥上CF刷了一道有趣的题(CF 480D),意犹未尽! 跟数学大佬浩佬吹嘘,浩佬看了题目:"这太简单了!我改 ...

  9. 2020 年 “联想杯”全国高校程序设计在线邀请赛暨第三届上海理工大学程序设计竞赛热身赛B. 回文串

    题目链接:题目 B. 回文串 单点时限: 2.0 sec内存限制: 512 MB QQ 小方以前不会判断回文数列,现在他会了,所以他急切的想教会你. 回文数列指的是一个正读和反读都一样的数列,比如 & ...

最新文章

  1. Linux0.11内核引导启动过程概述
  2. python画饼图-从零开始学Python可视化(五): 饼图及环形图
  3. 高可用集群技术之RHCS应用详解(一)
  4. Docker学习总结(6)——通过 Docker 化一个博客网站来开启我们的 Docker 之旅
  5. ASP.NET中利用DataList实现图片无缝滚动
  6. linux mysql插入中文乱码_解决Linux下Tomcat向MySQL插入数据中文乱码问题
  7. Linux vi 双屏显示,manjaro AwesomeWM 上使用双显示器
  8. setState的异步,同步以及合并
  9. python中string库_Python——string库
  10. 九度oj 题目1325:Battle Over Cities
  11. 服装企业三步走向PLM,致力提升价值的时尚品牌
  12. vs2017调用目标发生了异常
  13. 艾永亮:新能源汽车补贴退潮后,谁在裸奔,各大车企该如何应对
  14. phpstrom中的常用快捷键
  15. uva 12307 - Smallest Enclosing Rectangle(旋转卡壳)
  16. 小米十周年,雷军卖情怀
  17. dom4j解析xml文件
  18. GitBook 使用教程
  19. SFF-8472-Rev12.3 SFP+文档翻译
  20. 程序员必备的商业思维:君子也要言“利”!

热门文章

  1. javascript显示本地服务器图片,JavaScript图片本地预览功能的实现方法
  2. 扇贝一面----Android面经
  3. python课程设计矩阵对角线之和_Python二维数组实现求出3*3矩阵对角线元素的和示例...
  4. UVA167【The Sultan‘s Successors】(递归与回溯、8皇后问题)
  5. 如何使用 Kubernetes 部署 Flink 应用
  6. 测试适合染发颜色的软件,5秒测出你适合染什么颜色的头发!准到爆!
  7. SpringBoot通过dubbo-spring-boot-starter整合Dubbo出现的问题
  8. 《Web前端开发技术》笔记
  9. vue3实现发送验证码功能
  10. MySQL数据库——MySQL是什么?它有什么优势?