23 暑假友谊赛 No.3

Problem - B - Codeforces

贪心吧,每次看哪块瓷砖划算就尽量多的放哪块

#include <bits/stdc++.h>
#define int long long using namespace std;
typedef pair<int,int> PII; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int T;
cin >> T;
while(T--){
int n,m,x,y;
cin >>n >> m >> x >> y;
vector<string> g(n);
for(auto &i : g) cin >> i; int ans = 0;
for(int i =0;i < n;i ++){
for(int j = 0;j < m;j ++){
if(x * 2 <= y && g[i][j] == '.'){
ans += x;
}else{
int k = 0;
while(g[i][j] == '.' && j < m){
k++, j++;
}
ans += k / 2 * y + k % 2 * x;
}
}
} cout << ans << endl;
} return 0;
}

Problem - C - Codeforces

比较两个端点就行了

#include <bits/stdc++.h>
#define int long long using namespace std;
typedef pair<int,int> PII; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int T;
cin >> T;
while(T--){
int l1,l2,r1,r2;
cin >> l1 >> r1 >> l2 >> r2;
if(l1 >= r2){
cout << r1 << ' ' << l2 << endl;
}else
cout << l1 << ' ' << r2 << endl;
} return 0;
}

Problem - D - Codeforces

推出\(a^2=2\times c -1\)就好做了,直接去枚举就行

#include <bits/stdc++.h>
#define int long long using namespace std;
typedef pair<int,int> PII; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int T;
cin >> T;
while(T--){
int n;
cin >> n ;
int ans = 0;
for(int i = 3;i <= n;i++){ int m = (i * i + 1) / 2;
if(m > n)
break;
if(2 * m - 1 == i * i)
ans ++;
}
cout << ans << endl;
} return 0;
}

Problem - E - Codeforces

一个桶计数即可,然后取最大值.

#include <bits/stdc++.h>
#define int long long using namespace std;
typedef pair<int,int> PII; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int T;
cin >> T;
while(T--){
int n;
cin >> n;
vector<int> a(n),t(110);
for(auto &i : a) {
cin >> i;
t[i]++;
}
int ans = *max_element(t.begin(), t.end());
cout << ans << endl;
} return 0;
}

Problem - G - Codeforces

看比最小数大的有多少

#include <bits/stdc++.h>
#define int long long using namespace std;
typedef pair<int,int> PII; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int T;
cin >> T;
while(T--){
int n;
cin >> n ;
vector<int> a(n);
for(auto &i : a) {
cin >> i;
} int mi = *min_element(a.begin(), a.end());
int ans = 0;
for(auto i : a)
ans += (i > mi);
cout << ans << endl;
} return 0;
}

Problem - I - Codeforces

分类讨论:

  • m小于平均数的话,全给一个人就行了
  • 大于的话,多出来的joker牌小于其他k-1个人就-1,能整除k-1个人就给k-1个人平均分配,然后m减去这个平均值,不能整除,说明有几张刚好多出来,m在那基础上再-1就行了
#include <bits/stdc++.h>
#define int long long using namespace std;
typedef pair<int,int> PII; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int T;
cin >> T;
while(T--){
int n,m,k;
cin >> n >> m >> k;
int card = n / k;
if(m <= card){
cout << m << endl;
}else{
m -= card;
k--;
if(m < k){
cout << card - 1 << endl;
}else if(m % k == 0){
cout << card - m / k << endl;
}else
cout << card - m / k - 1 << endl;
}
} return 0;
}

Problem - J - Codeforces

唉,写了一堆判断,我考虑的真麻烦,懒得写了,建议看我学长的

#include <bits/stdc++.h>
#define int long long using namespace std;
typedef pair<int,int> PII; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int T;
cin >> T;
while(T--){
int n,k;
cin >> n >> k; if(n % 2 == 0){
if(k >= n ){
if(k % n == 0)
cout << n << endl;
else
cout << k % n << endl;
}else{
cout << k << endl;
}
}else if(k * 2 <= n){
cout << k << endl;
}else{
int p = (k - 1) / (n / 2);
int now;
if(k % n == 0) now = n;
else now = k % n;
if((now + p) % n == 0)
cout << n << endl;
else
cout << (now + p) % n << endl;
}
} return 0;
}

Problem - L - Codeforces

唉,破构造题,刚开始dfs写超时,后来打表找规律又找错了,麻了

#include <bits/stdc++.h>
#define int long long using namespace std;
typedef pair<int,int> PII; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int T;
cin >> T;
while(T--){
int n;
cin >> n;
for(int i = 1;i < n;i ++){
for(int j = i + 1;j <= n;j ++){
if(2 * (j - i) == n)
cout << 0 << ' ';
else if(2 * (j - i) < n)
cout << 1 << ' ';
else
cout << -1 << ' ';
}
}
cout << endl;
} return 0;
}

Problem - M - Codeforces

双指针从两边求前缀后缀和,相等的时候记录一下就行了

#include <bits/stdc++.h>
#define int long long using namespace std;
typedef pair<int,int> PII; signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr); int T;
cin >> T;
while(T--){
int n;
cin >> n ;
vector<int> a(n);
for(auto &i : a) cin >> i; int A = a[0],B = a.back(), ans = 0;
for(int i = 0, j = n - 1;i < j;){
if(A == B)
ans = (i + 1) + (n - j);
if(A > B){
j--;
B += a[j];
}else{
i++;
A += a[i];
}
}
cout << ans << endl;
} return 0;
}

总结

唉,刚开始编译器出问题了,半天没响应,本来最简单的签到题结果没看范围又wa了一发,后面又被那两只破猫换位置考虑了一堆写烦了,还有那个d题,刚开始读假了,没看到还要符合直角三角形,wa1发,后面那个破构造题,写个dfs超时,打表找规律找错,麻了,惹,感觉不如多来点二分贪心图论的题,补题看心情了,反正是越想越气\(:<\)

总结的总结

加训

23 暑假友谊赛 No.3的更多相关文章

  1. 合肥学院ACM集训队第一届暑假友谊赛 B FYZ的求婚之旅 D 计算机科学家 F 智慧码 题解

    比赛网址:https://ac.nowcoder.com/acm/contest/994#question B FYZ的求婚之旅 思路: 然后用快速幂即可. 细节见代码: #include <i ...

  2. 暑假训练round 3 题解

    今天做题运气出奇的好,除了几处小错误调试之后忘记改掉了……最后还AK了……虽然题目不难,学长也说是福利局,但是对个人的鼓励作用还是挺大的……至此暑假训练就结束了,也算没有遗憾……. 题解如下: Pro ...

  3. 20172305 暑假作业 之 TimeCalculate & Save Iron Man

    20172305 暑假作业 之 TimeCalculate & Save Iron Man TimeCalculate 项目介绍 项目名称: TimeCalculate 项目简介: 本项目基于 ...

  4. STL 入门 (17 暑假集训第一周)

    快速全排列的函数 头文件<algorithm> next_permutation(a,a+n) ---------------------------------------------- ...

  5. [置顶] 2013_CSUST暑假训练总结

    2013-7-19 shu 新生训练赛:母函数[转换成了背包做的] shuacm 题目:http://acm.hdu.edu.cn/diy/contest_show.php?cid=20083总结:h ...

  6. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  7. Java开发中的23种设计模式详解

    [放弃了原文访问者模式的Demo,自己写了一个新使用场景的Demo,加上了自己的理解] [源码地址:https://github.com/leon66666/DesignPattern] 一.设计模式 ...

  8. ILJMALL project过程中遇到Fragment嵌套问题:IllegalArgumentException: Binary XML file line #23: Duplicate id

    出现场景:当点击"分类"再返回"首页"时,发生error退出   BUG描述:Caused by: java.lang.IllegalArgumentExcep ...

  9. CSharpGL(23)用ComputeShader实现一个简单的ParticleSimulator

    CSharpGL(23)用ComputeShader实现一个简单的ParticleSimulator 我还没有用过Compute Shader,所以现在把红宝书里的例子拿来了,加入CSharpGL中. ...

  10. ABP(现代ASP.NET样板开发框架)系列之23、ABP展现层——异常处理

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之23.ABP展现层——异常处理 ABP是“ASP.NET Boilerplate Project (ASP.NET ...

随机推荐

  1. 详解Web应用安全系列(4)失效的访问控制

    在Web安全中,失效的访问控制(也称为权限控制失效或越权访问)是指用户在不具备相应权限的情况下访问了受限制的资源或执行了不允许的操作.这通常是由于Web应用系统未能建立合理的权限控制机制,或者权限控制 ...

  2. AT24C02、04、08、16 操作说明

    我们这里介绍一下常见的EEPROM,ATMEL的AT24x系列中的AT24C02,学会了这个芯片,其他系列的芯片也是类似的. AT24C02的存储容量为2K bit,内容分成32页,每页8Byte ( ...

  3. 总结:软件开发的3个方向 与 嵌入式Linux学习路线(驱动方向)

    --- title: 嵌入式Linux学习路线图(驱动方向) date: 2020-05-09 07:17:58 categories: tags: - embeded - summary - arm ...

  4. FM20S用户手册--Linux系统启动卡制作及系统固化

  5. 全国产!全志T3+Logos FPGA开发板(4核ARM Cortex-A7)规格书

    评估板简介 创龙科技TLT3F-EVM是一款基于全志科技T3四核ARM Cortex-A7 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核国产工业评估板,ARM Corte ...

  6. NXP i.MX 8M Mini开发板规格书(四核ARM Cortex-A53 + 单核ARM Cortex-M4,主频1.6GHz)

    1 评估板简介 创龙科技TLIMX8-EVM是一款基于NXP i.MX 8M Mini的四核ARM Cortex-A53 + 单核ARM Cortex-M4异构多核处理器设计的高性能评估板,由核心板和 ...

  7. Spring(XML方式)简单入门

    环境准备 maven jdk Spring Eclipse 项目创建 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0 ...

  8. 2024-07-13:用go语言,给定一个从0开始的长度为n的整数数组nums和一个从0开始的长度为m的整数数组pattern,其中pattern数组仅包含整数-1、0和1。 一个子数组nums[i.

    2024-07-13:用go语言,给定一个从0开始的长度为n的整数数组nums和一个从0开始的长度为m的整数数组pattern,其中pattern数组仅包含整数-1.0和1. 一个子数组nums[i. ...

  9. 万维网WWW

    万维网是一个大规模的联机式信息储存场所,能方便地从一个网络站点访问另一个网络站点.万维网是一个分布式的超媒体系统. 统一资源定位符URL URL表示从互联网上得到的资源位置和访问这些资源的方法,实际上 ...

  10. TIER 1: Responder

    TIER 1: Responder Active Directory Active Directory(AD)是由微软开发的目录服务,用于在网络环境中管理和组织用户.计算机.应用程序和其他资源.它是 ...