A.比较两人总时间。

#include<bits/stdc++.h>
using namespace std; int s,v1,v2,t1,t2; int main()
{
ios::sync_with_stdio(false);
cin >> s >> v1 >> v2 >> t1 >> t2;
int x1 = s*v1+*t1,x2 = s*v2+*t2;
if(x1 < x2) cout << "First" << endl;
else if(x1 > x2) cout << "Second" << endl;
else cout << "Friendship" << endl;
return ;
}

B.记录每个数值个9的差的个数,贪心大的。

#include<bits/stdc++.h>
using namespace std; int k,cnt[];
string s; int main()
{
ios::sync_with_stdio(false);
cin >> k >> s;
int sum = ;
for(int i = ;i < s.length();i++)
{
sum += s[i]-'';
cnt[-s[i]+'']++;
}
int ans = ,now = ;
while(sum < k)
{
while(cnt[now] == ) now--;
cnt[now]--;
sum += now;
ans++;
}
cout << ans << endl;
return ;
}

C.给周期内每个时间点都开数组,二维前缀和。

#include<bits/stdc++.h>
using namespace std; int n,q,c,ans[][][] = {}; int main()
{
ios::sync_with_stdio(false);
cin >> n >> q >> c;
for(int i = ;i <= n;i++)
{
int x,y,z;
cin >> x >> y >> z;
for(int j = ;j <= c;j++) ans[x][y][j] += (j+z)%(c+);
}
for(int k = ;k <= c;k++)
{
for(int i = ;i <= ;i++)
{
for(int j = ;j <= ;j++) ans[i][j][k] += ans[i][j-][k]+ans[i-][j][k]-ans[i-][j-][k];
}
}
while(q--)
{
int t,x1,x2,y1,y2;
cin >> t >> x1 >> y1 >> x2 >> y2;
t %= (c+);
cout << ans[x2][y2][t]-ans[x1-][y2][t]-ans[x2][y1-][t]+ans[x1-][y1-][t] << endl;
}
return ;
}

D.区间dp。

#include<bits/stdc++.h>
using namespace std; string s;
int dp[][] = {},ans[] = {}; int main()
{
ios::sync_with_stdio();
cin >> s;
s = ' '+s;
for(int i = ;i < s.length();i++) dp[i][i] = ;
for(int i = ;i < s.length();i++)
{
if(s[i-] == s[i]) dp[i-][i] = ;
}
for(int len = ;len < s.length();len++)
{
for(int l = ;l+len- < s.length();l++)
{
int r = l+len-;
if(s[l] != s[r] || !dp[l+][r-]) continue;
dp[l][r] = dp[l][l+len/-]+;
}
}
for(int i = ;i < s.length();i++)
{
for(int j = i;j < s.length();j++) ans[dp[i][j]]++;
}
for(int i = s.length()-;i >= ;i--) ans[i] += ans[i+];
for(int i = ;i < s.length();i++) cout << ans[i] << " ";
cout << endl;
return ;
}

E.因为有两个y,先把两个y划分进不同的组,把n个位置按位运算。每一位对应的值异或,统计只含一个y的位,10次。任取其中一位,对n个数划分成2块,之后对某一块少的二分找y的位置,9次。因为已经所有只含一个y的位,异或可得另一个y的位置。

#include<bits/stdc++.h>
using namespace std; int n,x,y; int ask(vector<int> v)
{
if(v.empty()) return ;
cout << "? " << v.size();
for(int i = ;i < v.size();i++) cout << " " << v[i];
cout << endl;
int x;
cin >> x;
return x;
} int main()
{
ios::sync_with_stdio();
cin >> n >> x >> y;
int diff = ,diffb;
for(int i = ;i < ;i++)
{
vector<int> v;
for(int j = ;j <= n;j++)
{
if(j&(<<i)) v.push_back(j);
}
int t = ask(v);
if(t == y || t == (x^y))
{
diff |= (<<i);
diffb = i;
}
}
vector<int> a,b;
for(int i = ;i <= n;i++)
{
if(i&(<<diffb)) a.push_back(i);
else b.push_back(i);
}
if(a.size() > b.size()) swap(a,b);
int l = ,r = a.size()-;
while(l < r)
{
int mid = (l+r)/;
vector<int> v;
for(int i = l;i <= mid;i++) v.push_back(a[i]);
int t = ask(v);
if(t == y ||t == (x^y)) r = mid;
else l = mid+;
}
int ans1 = a[l],ans2 = ans1^diff;
if(ans1 > ans2) swap(ans1,ans2);
cout << "! " << ans1 << " " << ans2 << endl;
return ;
}

Codeforces_835的更多相关文章

随机推荐

  1. 2019年最值得关注的AI领域技术突破及未来展望

    选自venturebeat 翻译:魔王.一鸣 前言 AI 领域最杰出的头脑如何总结 2019 年技术进展,又如何预测 2020 年发展趋势呢?本文介绍了 Soumith Chintala.Celest ...

  2. centos7 安装jdk8和maven3

    centos7 安装jdk8和maven3 标签(空格分隔): java,linux jdk 第一种安装: yum install java-1.8.0-openjdk /usr/lib/jvm/ 默 ...

  3. css写斜角

    项目开发中遇到了这样的效果,百度了一波,可以使用css3的伪类实现: /*斜角公用*/1.外层的div加class='wrapper' 并需要设置相对定位 .wrapper:before { -moz ...

  4. Java 中级 学习笔记 2 JVM GC 垃圾回收与算法

    前言 在上一节的学习中,已经了解到了关于JVM 内存相关的内容,比如JVM 内存的划分,以及JDK8当中对于元空间的定义,最后就是字符串常量池等基本概念以及容易混淆的内容,我们都已经做过一次总结了.不 ...

  5. python中方法调用和函数调用的区别

    函数调用: 传几个参数,就会有几个实参方法调用: 默认传递一个参数self,至少要定义一个形参

  6. java 大数的学习

    import java.math.*; import java.util.*; public class study { public static void main(String[] args) ...

  7. 依赖注入之IConfiguration

    public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; ...

  8. 测试必备之Java知识(三)—— 集合、Map相关

    集合相关 List.Set.Map的区别 类型 描述 List 允许重复对象,可插入多个null元素,有序 Set 不允许重复对象,只允许一个null元素,无序 Map 不是collection的子接 ...

  9. Python基础————文件操作

    文件操作 4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') # 表示要干嘛 读 还是写 obj.write() #写什么内容 obj.read() ...

  10. 聊一聊 InnoDB 引擎中的索引类型

    索引对数据库有多重要,我想大家都已经知道了吧,关于索引可能大家会对它多少有一些误解,首先索引是一种数据结构,并且索引不是越多越好.合理的索引可以提高存储引擎对数据的查询效率. 形象一点来说呢,索引跟书 ...