Summer training #5
B:分析序列 构造树(优先队列)
#include <bits/stdc++.h>
#include <cstring>
#include <iostream>
#include <algorithm>
#define foror(i,a,b) for(i=a;i<b;i++)
#define foror2(i,a,b) for(i=a;i>b;i--)
#define EPS 1.0e-8
#define PI acos(-1.0)
#define INF 3000000000
#define MOD 1000000009
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define lson o<<1, l, m
#define rson o<<1|1, m+1, r
//using ll = long long;
//using ull= unsigned long long;
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que;
typedef long long ll;
vector<int> tree[];
int visit[];
int pop=;
int pop1=;
int scan[];
priority_queue<int, vector<int>, greater<int> > leaf;
int maxn=;
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
int now;
//TS;
while(scanf("%d ",&now)!=EOF)
{
scan[++pop]=now;
maxn=max(maxn,now);
visit[now]++;
}
//cout<<maxn<<endl;
visit[maxn]++;
//TS;
for(int i=;i<=maxn;i++)
{
if(visit[i]==)
{
leaf.push(i);
}
}
while(!leaf.empty())
{
int cur;
cur= leaf.top();
leaf.pop();
tree[scan[pop1]].push_back(cur);
//cout<<scan[pop1]<<"pushin:"<<cur<<endl;
tree[cur].push_back(scan[pop1]);
//cout<<cur<<"pushin:"<<scan[pop1]<<endl;
if(--visit[scan[pop1]]==)
leaf.push(scan[pop1]);
pop1++;
}
for(int i=;i<=maxn;i++)
{
//printf("%d ",tree[i].size());
sort(tree[i].begin(),tree[i].end());
printf("%d:",i);
for(int j=;j<(int)tree[i].size();j++)
{
printf(" %d",tree[i][j]);
}
printf("\n");
}
return ;
}
C:求满足题意的正方形个数(二维前缀和 前缀和思想) 更难的相似的:http://agc015.contest.atcoder.jp/tasks/agc015_c
F: 打表找规律
#include <bits/stdc++.h>
#include <cstring>
#include <iostream>
#include <algorithm>
#define foror(i,a,b) for(i=a;i<b;i++)
#define foror2(i,a,b) for(i=a;i>b;i--)
#define EPS 1.0e-8
#define PI acos(-1.0)
#define INF 3000000000
#define MOD 1000000009
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define lson o<<1, l, m
#define rson o<<1|1, m+1, r
//using ll = long long;
//using ull= unsigned long long;
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que;
typedef long long ll;
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
int t;
cin >> t;
while(t--)
{
int s,k;
scanf("%d %d",&s,&k);
if(k%==)
{
if(s%==)
{
cout<<<<endl;
continue;
}
else
{
cout<<<<endl;
continue;
}
}
else
{
/*int now=0;
while(s>0)
{
now+=s%k;
s/=k;
}
cout<<now<<endl;*/
int now=s%(k+);
if(now%==)
cout<<<<endl;
else
{
if(now==k)
cout<<k<<endl;
else
cout<<<<endl;
}
}
}
return ;
}
G:水
H:二进制分析(lucky 测试数据没有失败的也没有要求最优解的)
#include <bits/stdc++.h>
#include <cstring>
#include <iostream>
#include <algorithm>
#define foror(i,a,b) for(i=a;i<b;i++)
#define foror2(i,a,b) for(i=a;i>b;i--)
#define EPS 1.0e-8
#define PI acos(-1.0)
#define INF 3000000000
#define MOD 1000000009
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define lson o<<1, l, m
#define rson o<<1|1, m+1, r
//using ll = long long;
//using ull= unsigned long long;
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que;
typedef long long ll;
int er[];
int er2[];
int ans[];
ll l,r;
int pop=;
ll anser1=;
void init(ll t)
{
int pop=;
while(t>)
{
er[pop++]=t%;
t=t/;
}
}
void init2(ll t)
{
int pop=;
while(t>)
{
er2[pop++]=t%;
t=t/;
}
}
ll now[];
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
mem(ans,-);
int flag=;
int have=;
int n;
cin >> n;
for(int i=;i<=n;i++)
cin>>now[i];
for(int i=;i<n;i++)
{
if(flag==)
break;
mem(er,);
mem(er2,);
ll cur=now[i];
ll next=now[i+];
init(cur);
init2(next);
int flag2=;
for(int j=;j>=;j--)
{
if(er[j]!=er2[j])
{
// cout<< j<<endl;
if(er[j]==&&er2[j]==)
{
if(ans[j]==-)
{
ans[j]=;
have++;
flag2=;
break;
}
else if(ans[j]==)
{
flag2=;
break;
}
}
else if(er[j]==&&er2[j]==)
{
if(ans[j]==-)
{
ans[j]=;
have++;
flag2=;
break;
}
else if(ans[j]==)
{
flag2=;
break;
}
}
}
}
if(flag2==)
flag=;
}
if(flag==)
{
cout<<<<endl;
return ;
}
ll anser=1LL*<<(-have);
cout<<anser<<endl;
return ;
}
I:数位DP
#include <bits/stdc++.h>
#include <cstring>
#include <iostream>
#include <algorithm>
#define foror(i,a,b) for(i=a;i<b;i++)
#define foror2(i,a,b) for(i=a;i>b;i--)
#define EPS 1.0e-8
#define PI acos(-1.0)
#define INF 3000000000
#define MOD 1000000007
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define lson o<<1, l, m
#define rson o<<1|1, m+1, r
//using ll = long long;
//using ull= unsigned long long;
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que;
typedef long long ll;
ll ans[][];
void init()
{
ans[][]=,ans[][]=ans[][]=;
for(int i=;i<=;i++)
{
ans[i+][]=(ans[i][]+ans[i][]+ans[i][])*%MOD;
ans[i+][]=ans[i][]%MOD,ans[i+][]=ans[i][]%MOD;
}
}
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
init();
int t;
cin >> t;
while(t--)
{
int n;
scanf("%d",&n);
ll anser=(ans[n][]+ans[n][]+ans[n][])%MOD;
cout<<anser<<endl;
}
return ;
}
Summer training #5的更多相关文章
- hdu 4946 2014 Multi-University Training Contest 8
Area of Mushroom Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- 2016 Multi-University Training Contests
2016 Multi-University Training Contest 1 2016 Multi-University Training Contest 2 2016 Multi-Univers ...
- 2016 Multi-University Training Contest 2 D. Differencia
Differencia Time Limit: 10000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- 2016 Multi-University Training Contest 1 G. Rigid Frameworks
Rigid Frameworks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- ACM: Gym 101047K Training with Phuket's larvae - 思维题
Gym 101047K Training with Phuket's larvae Time Limit:2000MS Memory Limit:65536KB 64bit IO F ...
- The Solution of UESTC 2016 Summer Training #1 Div.2 Problem C
Link http://acm.hust.edu.cn/vjudge/contest/121539#problem/C Description standard input/output After ...
- 2012 Multi-University Training Contest 9 / hdu4389
2012 Multi-University Training Contest 9 / hdu4389 打巨表,实为数位dp 还不太懂 先这样放着.. 对于打表,当然我们不能直接打,这里有技巧.我们可以 ...
- 2014 Multi-University Training Contest 9#11
2014 Multi-University Training Contest 9#11 Killing MonstersTime Limit: 2000/1000 MS (Java/Others) ...
- 2014 Multi-University Training Contest 9#6
2014 Multi-University Training Contest 9#6 Fast Matrix CalculationTime Limit: 2000/1000 MS (Java/Oth ...
- 2016 Multi-University Training Contest 1
8/11 2016 Multi-University Training Contest 1 官方题解 老年选手历险记 最小生成树+线性期望 A Abandoned country(BH) 题意: 1. ...
随机推荐
- pagefile.sys 虚拟内存
当我们使用电脑的时候,有时候需要更多的内存空间,但是内存条的价格又比较昂贵,我们可以用虚拟内存的方法,把一部分硬盘的空间作为内存使用. 进入控制面板---高级系统设置----高级-----更改---- ...
- C语言递归之翻转二叉树
题目描述 翻转一棵二叉树. 示例 输入: / \ / \ / \ 输出: / \ / \ / \ 题目要求 /** * Definition for a binary tree node. * str ...
- PHP学习(7)——面向对象(上)
1.理解面向对象的概念 面向对象软件的一个重要优点是支持和鼓励封装的能力.封装也叫数据隐藏. 在面向对象的软件中,对象是一个被保存数据和操作这些数据的操作方法的唯一.可标识的集合. 对象可以按类进行分 ...
- SpringCloud学习(二)服务消费者(rest+ribbon)(Finchley版本)
在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的.Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是fe ...
- Linux文件权限基础知识
一.文件权限概述 Linux中每个文件或目录都有一组一组9个基础权限位,每三位字符被分为一组,他们分别是属主权限位(占三个字符).用户组权限位(占三个字符).其他用户权限位(占三个字符).比如rwxr ...
- Docker CE 下载方式
1. 找到一个网址挺好的 https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/arm64/ mark 一下 以后用.
- Linux系列(0):入门之Linux版本说明以及用户登录与切换
你知道你登录时所在目录吗? 知道根目录下有哪些子目录吗? 知道如何切换用户吗? 知道如何添加用户吗? 如果你不知道,那就可以了解一下本章节啦! 前言:你知道Linux有多少发行版吗,如下图所示: 1. ...
- 结对编程-如何用精简的java代码写出这个系统
[写在前面]这篇博客是软件工程这门课中要求结对编程.规则是这样的:结对的两个人,分别看对方个人项目代码,2天时间内,分析对方代码优点和缺点.我是来分析凌嘉文同学的代码. 先写一下个人项目中的项目需求, ...
- TP5实现自定义抛出异常消息(关闭debug)
重写Handle的render方法,实现自定义异常消息----------------------------------------------------------------------- 首 ...
- 怎样理解Node对象接口
dom中的节点都继承自Node接口, 也就是说, 所有的节点都具有Node接口所规定的属性和方法, 比如下面这个 <a> 标签, 它也继承了Node的所有属性和方法: 可以认为Node接口 ...