当前位置: 首页 > news >正文

20257月29日-8月2日训练日志

2024睿抗国赛

RC-u1 大家一起查作弊

模拟题

#include <bits/stdc++.h>
#define endl "\n"
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0);
using namespace std;void solve(){string s;int sco = 0,len = 0,count = 0;while(getline(cin,s)){s+="\n";int n = s.size();string ss = "";for(int i=0;i<n;i++){if((s[i]>='A'&&s[i]<='Z') || (s[i]>='a'&&s[i]<='z') || (s[i]>='0'&&s[i]<='9')){ss.push_back(s[i]);}else{len+=ss.size();if(ss.size())count++;bool da = 0,xiao = 0,shuzi = 0;for(int u=0;u<ss.size();u++){if(ss[u] >= 'A' && ss[u] <= 'Z'){da = 1;}else if(ss[u] >= 'a'&&ss[u]<='z'){xiao = 1;}else if(ss[u]>='0' && ss[u]<='9'){shuzi = 1;}}if(da && xiao && shuzi){sco += 5;}else if((da&&shuzi) || (xiao&&shuzi)){sco+=3;}else if(da&&xiao){sco+=1;}ss = "";}}}cout<<sco<<endl<<len<<" "<<count;
}signed main() {FASTint t = 1;//cin>>t;while(t--)solve();return 0;
}

RC-u2 谁进线下了?II 

用好STL的话这个题就很简单了

#include <bits/stdc++.h>
#define int long long
#define endl "\n"
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0);
using namespace std;
int arr[21] = {0,25,21,18,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0};
void solve(){int n;cin>>n;unordered_map<int,int>mp;for(int i=0;i<n*20;i++){int c,p;cin>>c>>p;mp[c] += arr[p];}vector<pair<int,int>>a;for(auto [c,p] : mp){a.push_back({c,p});}sort(a.begin(),a.end(),[](auto a,auto b){if(a.second == b.second) return a.first<b.first;return a.second > b.second;});for(auto [c,p] : a){cout<<c<<' '<<p<<endl;}
}signed main() {FASTint t = 1;//cin>>t;while(t--)solve();return 0;
}

 RC-u3 势均力敌

题目的数据只在3和4,因此可以进行两次DFS,第一次求n个数的全排列,第二次求满足条件的组。

#include <bits/stdc++.h>
#define int long long
#define endl "\n"
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0);
using namespace std;
int n;
int a[4];//原始数据
int cou = 1;//阶乘,也就是所有数的个数
vector<int>qpl;//全排列
vector<bool>v1(4,0),v2(24,0);
int ss = 0;//全排列里面所有数的总和
vector<int>ans;
int f = 0;void dfs1(int x,int num){if(x==n){qpl.push_back(num);return ;}for(int i=0;i<n;i++){if(!v1[i]){v1[i] = 1;dfs1(x+1,num*10+a[i]);v1[i] = 0;}}
}void dfs2(int start,int sum){if(sum > ss/2) return ;if(sum == ss/2 && ans.size() == cou/2){for(int num : ans){cout<<num<<endl;}f = 1;return ;}for(int i=start;i<cou;i++){if(!v2[i]){v2[i] = 1;ans.push_back(qpl[i]);dfs2(i+1,sum+qpl[i]*qpl[i]);if(f) return ;ans.pop_back();v2[i] = 0;}}
}void solve(){cin>>n;for(int i=0;i<n;i++){cin>>a[i];cou*=i+1;}dfs1(0,0);for(int i=0;i<cou;i++){ss+=qpl[i] * qpl[i];}sort(qpl.begin(),qpl.end());dfs2(0,0);
}signed main() {FASTint t = 1;//cin>>t;while(t--)solve();return 0;
}

二分答案

1283. 使结果不超过阈值的最小除数 - 力扣(LeetCode)

 假设除数为m,根据题意,每个数除以m向上取整,元素和为

\sum_{i=0}^{n-1}\left \lceil \frac{nums[i]}{m} \right \rceil

由于m越大,上式越小,有单调性,可以二分答案。

最小的满足\sum_{i=0}^{n-1}\left \lceil \frac{nums[i]}{m} \right \rceil\leq thresholdm就是答案

class Solution {
public:int smallestDivisor(vector<int>& nums, int threshold) {auto check = [&](int m){int sum = 0;for(int num : nums){sum += (num + m - 1)/m;if(sum > threshold)return false;}return true;};int l=0,r =ranges::max(nums);while(l + 1 < r){int mid = (l+r)/ 2;(check(mid)?r:l) = mid;}return r;}
};

2187. 完成旅途的最少时间 - 力扣(LeetCode)

 时间越多,可以完成的旅途也就越多,有单调性,可以二分答案

问题变成:

  • 每辆车都用时 x,总共能完成多少趟旅途?能否达到 totalTrips?
class Solution {
public:long long minimumTime(vector<int>& time, int totalTrips) {auto check = [&](long long x){long long sum = 0;for(int t : time){sum += x/t;if(sum >= totalTrips) return true;}return false;};int mint = ranges::min(time);long long l = mint - 1;long long r = 1LL * mint * totalTrips;while(l+1 < r){long long mid = l + (r-l) / 2;(check(mid)?r:l) = mid;}return r;}
};

 西安校赛

Pythagorean Cup - Gym 105937E - Virtual Judge

 思维,根据半杯出现的位置离右边的距离求和,然后奇偶判断

#include <bits/stdc++.h>
#define int long long
#define endl "\n"
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0);
using namespace std;void solve(){string s;cin>>s;int n = s.size();int cnt = 0;for(int i=0;i<n;i++){if(s[i] == 'H'){cnt += n-i;}}if(cnt&1) cout<<"Alice";else cout<<"Bob";
}signed main() {FASTint t = 1;//cin>>t;while(t--) solve();return 0;
}

 P12531 [XJTUPC 2025] Beat Verdict: Precision Strike - 洛谷

人生第一个交互题,虽然看题解写出来了但是还是依然的懵b 

#include <bits/stdc++.h>
#define int long long
#define endl "\n"
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0);
using namespace std;int c[20];void solve(){int n;cin>>n;int l = 1,r = 2;for(int i=1;i<=16;i++)if(c[i]*2 < n)r++;while(l + 1 < r){int mid = (l+r) >>1;cout<<"? "<<c[mid]/2<<endl;cout.flush();int f;cin>>f;if(f) r = mid;else l = mid;}if(c[l] > n) cout<<"! "<<n<<endl;else cout<<"! "<<c[l]<<endl;cout.flush();
}signed main() {FASTint t = 1;cin>>t;c[1] = 2;for(int i=2;i<=16;i++)c[i] = (c[i-1] * 2 + 1) * 2;while(t--) solve();return 0;
}

 P12540 [XJTUPC 2025] 离散对数 - 洛谷

给定正整数 a,c,p,保证 p 是素数,求 b 使得: a^{b}\equiv b^{c}\left ( mod\: p \right )

模数 p 是质数,费马小定理:如果 p 是一个质数,而整数 a 不是 p 的倍数,则有a^{p-1}\equiv 1\left ( mod\, p \right ) 的结论。

容易发现,当b= (p-1)^{2}  时,可以满足条件。

代入原式,如下:

a^{b}:a^{(p-1)^2}\equiv 1^{p-2}\equiv 1(mod\, p)

b^{c}:[(p-1)^2]^c\equiv 1^{c}\equiv 1(mod\, p)

于是,b = (p-1)^2 就是答案。那么题目输入完后,直接输出即可。

摘自题解

#include <bits/stdc++.h>
#define int long long
#define endl "\n"
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0);
using namespace std;void solve(){int a,c,p;cin>>a>>c>>p;cout<<(p-1)*(p-1);
}signed main() {FASTint t = 1;//cin>>t;while(t--) solve();return 0;
}

http://www.lryc.cn/news/606851.html

相关文章:

  • 软件测试测评公司关于HTTP安全头配置与测试?
  • 用 Ubuntu 22.04 (Jammy) 的 MongoDB 源
  • Java 学习笔记:常用类、String 与日期时间处理
  • 新手小白做一个简单的微服务
  • oracle的安全加密有哪些?
  • Linux基础 -- 内核快速向用户态共享内核变量方案之ctl_table
  • 编程与数学 03-002 计算机网络 17_云计算与网络
  • 无人设备遥控器之多设备协同技术篇
  • Java,八股,cv,算法——双非研0四修之路day22
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘altair’问题
  • 【Leetcode hot 100】1.两数之和
  • 切比雪夫不等式
  • qcustomplot 大量数据拖拽卡顿,开启opengl
  • SketchUp扩展工具分享:Ropefall v1.02插件轻松实现绳索模拟
  • 1、【C语言】【进阶】数组,指针与退化
  • 函数fdopendir的用法
  • [vue3 echarts] echarts 动态数据更新 setInterval
  • 深度学习(鱼书)day08--误差反向传播(后三节)
  • 轻钢屋顶电动排烟窗(工业用)
  • ansible.cfg 配置文件的常见配置项及其说明
  • SQL中的HAVING用法
  • MySQL--组从复制的详解及功能演练
  • 从O(n²)到O(n log n):深度剖析快速排序的内存优化与cache-friendly实现
  • 高级11-Java日志管理:使用Log4j与SLF4J
  • Oracle EBS 缺少adcfgclone.pl文件
  • 电商前端Nginx访问日志收集分析实战
  • 汇川ITS7100E触摸屏交互界面开发(一)调试事项说明
  • 25电赛e题杂乱环境稳定识别矩形框(附源码)
  • Vue3 Vue3中的响应式原理
  • StarRocks vs. Trino