Codeforces Beta Round #77 (Div. 2 Only)

http://codeforces.com/contest/96

A

 #include<bits/stdc++.h>
using namespace std;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define sqr(x) ((x)*(x))
#define pb push_back
#define eb emplace_back
#define maxn 13000005
#define eps 1e-8
#define pi acos(-1.0)
#define rep(k,i,j) for(int k=i;k<j;k++)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<char,int> pci;
typedef pair<pair<int,string>,pii> ppp;
typedef unsigned long long ull;
const long long MOD=1e9+;
/*#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif */ int main(){
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
string str;
cin>>str;
int co=;
vector<int>ve;
for(int i=;i<str.length();i++){
if(str[i]!=str[i-]){
ve.pb(co);
co=;
}
else{
co++;
}
}
ve.pb(co);
for(int i=;i<ve.size();i++){
if(ve[i]>=) {cout<<"YES"<<endl;return ;}
}
cout<<"NO"<<endl;
}

B

dfs+二分

 #include<bits/stdc++.h>
using namespace std;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define sqr(x) ((x)*(x))
#define pb push_back
#define eb emplace_back
#define maxn 13000005
#define eps 1e-8
#define pi acos(-1.0)
#define rep(k,i,j) for(int k=i;k<j;k++)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<char,int> pci;
typedef pair<pair<int,string>,pii> ppp;
typedef unsigned long long ull;
const long long MOD=1e9+;
/*#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif */ ll n; set<ll>se;
map<ll,int>mp; void Check(ll num){
ll tmp=num;
int qi=,si=;
while(num){
if(num%==){
si++;
}
else if(num%==){
qi++;
}
num/=;
}
if(si==qi&&si>){
se.insert(tmp);
}
} void dfs(ll num){
if(num>n*||mp[num]) return;
mp[num]=;
Check(num);
dfs(num*+);
dfs(num*+);
} int main(){
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
cin>>n;
dfs();
set<ll>::iterator it;
it=lower_bound(se.begin(),se.end(),n);
cout<<*it<<endl;
}

C

模拟

 #include<bits/stdc++.h>
using namespace std;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define sqr(x) ((x)*(x))
#define pb push_back
#define eb emplace_back
#define maxn 13000005
#define eps 1e-8
#define pi acos(-1.0)
#define rep(k,i,j) for(int k=i;k<j;k++)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<char,int> pci;
typedef pair<pair<int,string>,pii> ppp;
typedef unsigned long long ull;
const long long MOD=1e9+;
/*#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif */
const int N = ;
string s[N], ss[N], w, ww;
bool vis[N];
char str;
string change(string x) {
for(int i = ; i < x.length(); i ++) {
if(x[i] >= 'A' && x[i] <= 'Z') x[i] += ;
}
return x;
} int main(){
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
int n;
cin >> n;
for(int i = ; i < n; i ++) {
cin >> s[i];
ss[i] = change(s[i]);
}
cin >> w >> str;
ww = change(w);
if(str >= 'A' && str <= 'Z') str += ; int l = ww.length();
for(int i = ; i < l; i ++) {
for(int k = ; k < n; k ++) {
if(l-s[k].length() + >= i && ww.substr(i, ss[k].length()) == ss[k]) {
for(int j = i; j < i + ss[k].length(); j ++) vis[j] = ;
}
}
} for(int i = ; i < l; i ++) {
if(vis[i]) {
if(ww[i] == str) {
char tmp = 'a';
if(ww[i] == 'a') tmp = 'b'; if(w[i] >= 'A' && w[i] <= 'Z') w[i] = tmp - ;
else w[i] = tmp;
} else {
if(w[i] >= 'A' && w[i] <= 'Z') w[i] = str - ;
else w[i] = str;
}
}
}
cout << w << endl;
}

D

最短路   两次Dijstra 第一次构建以花费为权值的图,第二次跑最短路

 #include<bits/stdc++.h>
using namespace std;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define sqr(x) ((x)*(x))
#define pb push_back
#define eb emplace_back
#define maxn 13000005
#define eps 1e-8
#define pi acos(-1.0)
#define rep(k,i,j) for(int k=i;k<j;k++)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<long long,int>pli;
typedef pair<char,int> pci;
typedef pair<pair<int,string>,pii> ppp;
typedef unsigned long long ull;
const long long MOD=1e9+;
/*#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif */ int n,m,s,t; vector<pli>G[],ve[];
vector<pli>a; long long dis[],vis[]; void dijstra1(int x){
for(int i=;i<=n;i++) dis[i]=0x3f3f3f3f3f3f3f3f,vis[i]=;
dis[x]=;
priority_queue<pli,vector<pli>,greater<pli>>Q;
Q.push({,x});
while(!Q.empty()){
pli p=Q.top();
Q.pop();
int v=p.second;
if(!vis[v]){
vis[v]=;
for(int i=;i<G[v].size();i++){
int vv=G[v][i].second;
long long dist=G[v][i].first+dis[v];
if(!vis[vv]&&dist<dis[vv]){
dis[vv]=dist;
Q.push({dis[vv],vv});
}
}
}
}
for(int i=;i<a.size();i++){
if(i!=x&&a[x].second>=dis[i]){
ve[x].pb({a[x].first,i});
}
}
} void dijstra2(int x,int t){
for(int i=;i<=n;i++) dis[i]=0x3f3f3f3f3f3f3f3f,vis[i]=;
dis[x]=;
priority_queue<pli,vector<pli>,greater<pli>>Q;
Q.push({,x});
while(!Q.empty()){
pli p=Q.top();
Q.pop();
int v=p.second;
if(!vis[v]){
vis[v]=;
for(int i=;i<ve[v].size();i++){
int vv=ve[v][i].second;
long long dist=ve[v][i].first+dis[v];
if(!vis[vv]&&dist<dis[vv]){
dis[vv]=dist;
Q.push({dis[vv],vv});
}
}
}
}
if(dis[t]==0x3f3f3f3f3f3f3f3f) cout<<-<<endl;
else cout<<dis[t]<<endl;
} int main(){
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
cin>>n>>m>>s>>t;
int u,v;
long long c;
for(int i=;i<=m;i++){
cin>>u>>v>>c;
G[u].pb({c,v});
G[v].pb({c,u});
}
a.pb({,});
for(int i=;i<=n;i++){
cin>>u>>c;
a.pb({c,u});
}
for(int i=;i<=n;i++){
dijstra1(i);
}
dijstra2(s,t);
}

E

大数+数位DP

 #include<bits/stdc++.h>
using namespace std;
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define sqr(x) ((x)*(x))
#define pb push_back
#define eb emplace_back
#define maxn 13000005
#define eps 1e-8
#define pi acos(-1.0)
#define rep(k,i,j) for(int k=i;k<j;k++)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<long long,int>pli;
typedef pair<char,int> pci;
typedef pair<pair<int,string>,pii> ppp;
typedef unsigned long long ull;
const long long mod=1e9+;
/*#ifndef ONLINE_JUDGE
freopen("1.txt","r",stdin);
#endif */
const int N=;
int digit[N];
ll dp[N][N][];
char l[N], r[N];
int k;
int dfs(int len, int p, bool flag, bool limit) {
if (len == ) return flag;
if (limit == && dp[len][p][flag] != -) return dp[len][p][flag];
int up = limit ? digit[len] : ;
int res = ;
rep(i, , up + ) {
if (i != && i != )
res = (res + dfs(len - , max(, p - ), flag, limit && i == up)) % mod;
else res = (res + dfs(len - , * k, flag || p, limit && i == up)) % mod;
}
if (!limit) dp[len][p][flag] = res;
return res;
}
void solve() {
int t;
memset(dp, -, sizeof dp);
scanf("%d%d", &t, &k);
while (t--) {
scanf("%s%s", l, r);
int len = strlen(r);
for(int i=len;i>=;i--) digit[i] = r[len - i] - '';
int ans = dfs(len, , , );
len = strlen(l);
for(int i=len;i>=;i--) digit[i] = l[len - i] - '';
digit[]--;
for (int i = ; digit[i] < ; i++) {
digit[i] += ;
digit[i + ]--;
}
if (digit[len] == ) len--;
ans = (ans - dfs(len, , , ) + mod) % mod;
printf("%d\n", ans);
}
} int main(){
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
#endif
std::ios::sync_with_stdio(false);
solve();
}

Codeforces Beta Round #77 (Div. 2 Only)的更多相关文章

  1. Codeforces Beta Round #77 (Div. 1 Only) C. Volleyball (最短路)

    题目链接:http://codeforces.com/contest/95/problem/C 思路:首先dijkstra预处理出每个顶点到其他顶点的最短距离,然后如果该出租车到某个顶点的距离小于等于 ...

  2. codeforces水题100道 第二十三题 Codeforces Beta Round #77 (Div. 2 Only) A. Football (strings)

    题目链接:http://www.codeforces.com/problemset/problem/96/A题意:判断一个0-1字符串中出现的最长的0字串或者1字串的长度是否大于等于7.C++代码: ...

  3. Codeforces Beta Round #77 (Div. 2 Only) A. Football【字符串/判断是否存在连续7个0或7个1】

    A. Football time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  4. Codeforces Beta Round #80 (Div. 2 Only)【ABCD】

    Codeforces Beta Round #80 (Div. 2 Only) A Blackjack1 题意 一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10 现在你已经有一 ...

  5. Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】

    Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...

  6. Codeforces Beta Round #79 (Div. 2 Only)

    Codeforces Beta Round #79 (Div. 2 Only) http://codeforces.com/contest/102 A #include<bits/stdc++. ...

  7. Codeforces Beta Round #76 (Div. 2 Only)

    Codeforces Beta Round #76 (Div. 2 Only) http://codeforces.com/contest/94 A #include<bits/stdc++.h ...

  8. Codeforces Beta Round #75 (Div. 2 Only)

    Codeforces Beta Round #75 (Div. 2 Only) http://codeforces.com/contest/92 A #include<iostream> ...

  9. Codeforces Beta Round #74 (Div. 2 Only)

    Codeforces Beta Round #74 (Div. 2 Only) http://codeforces.com/contest/90 A #include<iostream> ...

随机推荐

  1. PHP解决网站大流量与高并发

    1:硬件方面 普通的一个p4的服务器每天最多能支持大约10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力 软件怎么优化都是于事无补的.主要影响服务器的速度 有:网络-硬 ...

  2. linux驱动开发第一步hello

    先查看Ubuntu的版本 cat /etc/issue lin@lin-virtual-machine:~$ cat /etc/issue Ubuntu 12.04 LTS \n \l 或者使用 li ...

  3. 清除linux服务器缓存 clean.sh

    #!/bin/sh#根据输入参数创建后台进程的日志名称#FileName: createNohupPhpForbak.sh #export JAVA_HOME=/root/lib/jdk1.7.0_7 ...

  4. 函数参数,const 引用 和 非 const引用是不同的函数。

    举个例子, void f(const int &x) 和 void f(int &x) 是不同的函数. 函数的返回值不能作为区分

  5. text-align: justify;浏览器、安卓手机不兼容问题

    https://segmentfault.com/a/1190000013146385

  6. php版本升级导致openssl无法使用

    也就是call to undefined function openssl错误: 把extension前面的注释去掉,甚至把“libeay32.dll和ssleay32.dll文件复制并替换到apac ...

  7. 【377】only one element in a tuple

    Recently I am doing the assignment of COMP9021. It is too difficult and it is about the Knight and K ...

  8. Oracle存储过程中使用临时表

    一.Oracle临时表知识 在Oracle中,临时表分为SESSION.TRANSACTION两种,SESSION级的临时表数据在整个SESSION都存在,直到结束此次SESSION:而 TRANSA ...

  9. 18.1利用socket .io 实现 editor间代码的同步

    首先,我们想实现在同一个页面editor 大家同时编辑 同步 所以能 我们需要这个url 作为我们 session id 或者叫聊天室的roomid 或者 反正就是保证他们在同一个list里面 就是 ...

  10. Java复习 之多线程

    线程是一个程序中的不同路径 例子1 只有一条路径 每一个分支都是一个线程 实际上在一个时刻内 电脑只能运行一个进程 但是因为cpu运算速度很快 将时间分出来了 所以我们感觉是同时运行 创建线程的两种方 ...