A Live Love

#include <algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int maxn = 1e5 + ; int main()
{
int t;
scanf("%d", &t);
while(t--)
{
int n,m;
scanf("%d%d",&n,&m);
if(m==){
printf("0 0\n");
continue;
}
if(n==m){
printf("%d %d\n",n,m);
continue;
}
if(n>=*m-){
printf("%d %d\n",m,);
continue;
}
for(int i=;i<=m;i++) {
if (n - m >= (m / i + (m % i != )) - ) {
printf("%d %d\n", m, i);
break;
}
}
}
return ;
}
B Red Black Tree

留坑

C Halting Problem

题意:自定义了一些程序,然后问程序会不会崩溃,也就是会不会有死循环出现

思路:队友写的,大致就是同一步不可以运行一摸一样的两次吧

#include <algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int maxn = 1e5 + ;
struct com{
char cm[];
int v,k;
}prog[];
bool vstd[][];
int main()
{
int n,t;
scanf("%d", &t);
while(t--) {
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%s%d",prog[i].cm,&prog[i].v);
if(prog[i].cm[]!='a'){
scanf("%d",&prog[i].k);
}
}
int r=,ins=;
int flag=;
memset(vstd,,sizeof(vstd));
while(true){
if(ins>n){
break;
}
if(vstd[r][ins]){
flag=;
break;
}
switch(prog[ins].cm[]){
case 'd'://+
vstd[r][ins]=;
r+=prog[ins].v;
r%=;
ins++;
break; case 'e'://==
vstd[r][ins]=;
if(r==prog[ins].v){
ins=prog[ins].k;
}else{
ins++;
}
break; case 'n'://!=
vstd[r][ins]=;
if(r!=prog[ins].v){
ins=prog[ins].k;
}else{
ins++;
}
break; case 'l'://<
vstd[r][ins]=;
if(r<prog[ins].v){
ins=prog[ins].k;
}else{
ins++;
}
break; case 'g'://>
vstd[r][ins]=;
if(r>prog[ins].v){
ins=prog[ins].k;
}else{
ins++;
}
break; default:
vstd[r][ins]=;
ins++;
break;
}
}
if(flag){
puts("Yes");
}else{
puts("No");
}
}
return ;
}
D Pixel Art

留坑

E Infinite Parenthesis Sequence

留坑

F Chaleur

留坑

G Couleur

留坑

H Traveling on the Axis

题意:模拟红绿灯,1过,0停,每一秒之后都会改变所有的灯的状态,1变0,0变1

思路:只需要特判第一步走的需不需要停就可以,之后走起来之后的状态都是重复进行的

#include <algorithm>
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
char rd[];
ll len;
int main()
{
int n,t;
while(~scanf("%d",&t)) { while (t--) {
scanf("%s", rd);
len = strlen(rd);
long long ans = ;
long long tmp;
for (ll i = ; i < len - ; i++) {
tmp = (len - i - ) * (i + );
if (rd[i] == rd[i + ])tmp *= ;
ans += tmp;
}
//ll b=0;
for (ll i = ; i < len; i++) {
ans += rd[i] == '' ? (len - i) : (len - i) * ;
//b+=rd[i]=='1'?(len-i):(len-i)*2;
} cout << ans << endl;
}
}
return ;
}
I Kuririn MIRACLE
 留坑
 
J Press the Button

题意:按灯,当灯亮的时候按压可以加分,每一次按都会重置灯的熄灭时间。

思路:可以先找到两个数的最小公倍数,然后就可以按照这个周期进行一些剪枝,在每一次周期或者是最后一次的剩余时间里可以模拟,队友用了栈写之后超时了,后来另一位队友没有用栈就AC了

#include <algorithm>
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
ll gcd(ll x, ll y)
{
return x % y == ? y : gcd(y, x % y);
} int main()
{
int t;
while(~scanf("%d",&t)) {
while (t--) {
ll a,b,c,d,v,t;
scanf("%lld%lld%lld%lld%lld%lld",&a,&b,&c,&d,&v,&t);
ll time=;
ll tt=a*c/gcd(a,c);
ll ta=a,tc=c;
ll tans=;
while(ta<=tt || tc<=tt){
if(ta<=tc){
tans+=b;
if(ta-time>v){
tans--;
}
time=ta;
ta+=a;
}else if(ta>tc){
tans+=d;
if(tc-time>v){
tans--;
}
time=tc;
tc+=c;
}
}
ll sans=;ta=a,tc=c;
time=;
ll res=t%tt;
while(ta<=res|| tc<=res){
if(ta<=tc){
sans+=b;
if(ta-time>v){
sans--;
}
time=ta;
ta+=a;
}else if(ta>tc){
sans+=d;
if(tc-time>v){
sans--;
}
time=tc;
tc+=c;
}
}sans+=b+d-;
cout<<tans*(t/tt)+sans<<endl;
}
}
return ;
}
K XOR Clique

题意:找一个最大的集合,使得这些任意两个异或后的值都比最小的那个小

思路:有个队友说可以用字典树,后来我想了想好像只需要计算每一个2,4,8,16,32,64,128,256,512,1024......这些区间的数字的个数就可以了,因为不同的这些2的次方它们异或之后显然最高位会是1,使得它们肯定会比最小的那个大,所以肯定是在同一个集合里面的,同一个集合里面的它们的第一位是相同的,所以异或之后肯定会比最小的那个数要小,所以统计区间个数就可以了,先打个表记录一下2的次方。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<set>
#include<stack>
#include<vector>
#include<map>
#include<ctime>
using namespace std;
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int maxn = 1e5 + ; int main()
{
ll a[];
int sum[];
for(ll i=;i<=;i++)
{
a[i]=(ll)pow(*1.0,i);
// cout<<a[i]<<" ";
}
int t;
while(~scanf("%d",&t))
{
while(t--)
{
int n;
scanf("%d",&n);
memset(sum,,sizeof sum);
for(int i=;i<n;i++)
{
int x;
scanf("%d",&x);
for(int num=;num<=;num++)
{
if(x<a[num])
{
sum[num]++;
break;
}else
continue;
}
}
int maxx=-;
for(int i=;i<=;i++)
maxx=max(maxx,sum[i]);
printf("%d\n",maxx);
}
}
}

The 2018 ACM-ICPC Asia Qingdao Regional Contest(青岛网络赛)的更多相关文章

  1. The 2018 ACM-ICPC Asia Qingdao Regional Contest

    The 2018 ACM-ICPC Asia Qingdao Regional Contest 青岛总体来说只会3题 C #include<bits/stdc++.h> using nam ...

  2. The 2018 ACM-ICPC Asia Qingdao Regional Contest(部分题解)

    摘要: 本文是The 2018 ACM-ICPC Asia Qingdao Regional Contest(青岛现场赛)的部分解题报告,给出了出题率较高的几道题的题解,希望熟悉区域赛的题型,进而对其 ...

  3. ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków

    ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s Rect ...

  4. 2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)

    2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred) easy: ACE ...

  5. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online J - Press the Button(思维)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4056 题意 有一个按钮.一个灯.一个计时器和一个计数器,每按一次按钮,计时 ...

  6. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online -C:Halting Problem(模拟)

    C Halting Problem In computability theory, the halting problem is the problem of determining, from a ...

  7. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online Solution

    A    Live Love 水. #include<bits/stdc++.h> using namespace std; typedef long long ll; ; const i ...

  8. 2018-2019, ICPC, Asia Yokohama Regional Contest 2018 K

    传送门:https://codeforces.com/gym/102082/attachments 题解: 代码: /** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ┃ * ┃ ━ ...

  9. ZOJ - 4048 Red Black Tree (LCA+贪心) The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online

    题意:一棵树上有m个红色结点,树的边有权值.q次查询,每次给出k个点,每次查询有且只有一次机会将n个点中任意一个点染红,令k个点中距离红色祖先距离最大的那个点的距离最小化.q次查询相互独立. 分析:数 ...

  10. 2018 ICPC Asia Jakarta Regional Contest

    题目传送门 题号 A B C D E F G H I J K L 状态 Ο . . Ο . . Ø Ø Ø Ø . Ο Ο:当场 Ø:已补 .  :  待补 A. Edit Distance Thin ...

随机推荐

  1. net core 的Generic Host 之Generic Host Builder

    前言 通用Host(Generic Host) 与 web Host 不同的地方就是通用Host解耦了Http请求管道,使得通用Host拥有更广的应用场景.比如:消息收发.后台任务以及其他非http的 ...

  2. ElasticSearch安装和核心概念

    1.ElasticSearch安装 elasticsearch的安装超级easy,解压即用(要事先安装好java环境). 到官网 http://www.elasticsearch.org下载最新版的 ...

  3. java-jsch实现sftp文件操作

    (曾在天涯)的文章详细讲解了jsch中的函数以及用法 http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html http://www. ...

  4. 常用模块random,time,os,sys,序列化模块

    一丶random模块 取随机数的模块 #导入random模块 import random #取随机小数: r = random.random() #取大于零且小于一之间的小数 print(r) #0. ...

  5. css 选择器 & UI元素的伪类选择器 & 伪元素选择器

    UI元素的伪类选择器 1. :focus  用来选取获取焦点事件 2. :enabled 用来指定当元素处于可用状态时的样式 3. :disable  用来指定元素处于不可用时的状态    表单里应用 ...

  6. Catch the moments of your life. Catch them while you're young and quick.

    Catch the moments of your life. Catch them while you're young and quick.趁你还年轻利落,把握住生活中的美好瞬间吧!

  7. nsight 中出现method could not be resolved 报错

    解决的方法就是现在编译选项中取消该报错. 项目右键->属性->c/c++常规->Code Analysis,选择"Use project settings"  中 ...

  8. MySQL使用一张表的一列更新另一张表的一列

    使用MySQL中,在一张表etl_table_field_info上新增了一个字段tgt_table_en_name,该字段的值想从表etl_table_property_info的tgt_table ...

  9. mif文件生成方法

    mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据.常见生成方法: Quartus自带的mif编辑器生成 mif软件生成 高级编程语 ...

  10. Intel&amd