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. python版飞机大战代码简易版

    # -*- coding:utf-8 -*- import pygame import sys from pygame.locals import * from pygame.font import ...

  2. 利用shell脚本实现每隔60秒磁盘内存数据监控脚本

    #!/bin/bash #Author:GaoHongYu #QQ: #Time:-- :: #Name:ncjk.sh #Version:V1. clear xtip=$(hostname -I) ...

  3. 【Python3爬虫】突破反爬之应对前端反调试手段

    一.前言 在我们爬取某些网站的时候,会想要打开 DevTools 查看元素或者抓包分析,但按下 F12 的时候,却出现了下面这一幕:   此时网页暂停加载,自动跳转到 Source 页面并打开了一个 ...

  4. Win10删除桌面上的回收站、计算机、网络等图标

    解决方案: 桌面上鼠标右键,选择个性化 个性化窗口左边侧栏选择主题 移动至最下方点击"桌面图标设置"即可看到系统中的五个桌面图标

  5. OSS上传图片无法在线预览的解决方案

    OSS上传图片无法在线预览的解决方案 最近在做的项目涉及到商品详情,由于前端用的flutter框架并且该详情为富文本,dart语言关于富文本的组件不是非常友好,当富文本中的图片无法在浏览器中直接预览的 ...

  6. 线程池:ThreadPoolExecutor的使用

    ThreadPoolExecutor配置 一.ThreadPoolExcutor为一些Executor提供了基本的实现,这些Executor是由Executors中的工厂 newCahceThread ...

  7. 比特币学习笔记(二)---在windows下调试比特币源码

    根据我一贯的学习经验,学习开源代码的话,单单看是不够的,必须一边看一边调试才能尽快理解,所以我们要想法搭建windows下bitcoin源码的调试环境. 紧接着昨天的进度,想要调试linux下的比特币 ...

  8. .net Core 使用IHttpClientFactory请求

            导读:本文已添加在晨曦微服务之旅,现在自己在尝试微服务架构,一边学边做项目快速的进入状态.当然在学习的过程中会将自己学到的知识进行分享. 一.为什么不用HttpClient       ...

  9. 研究僧丨Window实用利器分享

    本人CS在读小硕,平时工作环境主要是win10加ubuntu,下面推荐一些我用过且觉得不错的应用. PS:我列举的应用基本被下面的网站收录,大家不妨去里面淘淘看. Windows 绝妙项目 Aweso ...

  10. python 进程事件

    1.作用 通过信号量,控制全部进程进入阻塞状态,也可以通过控制信号量,解除全部进程的阻塞 注意:定义的事件对象,默认状态是阻塞 2.常用方法 """ 对象.set() 作 ...