终于我也参加了一场有R1 && R2的比赛呢。

  点击此处查看R1

  因为种种原因,老师认为上次的考试没有体现我们的真实水平,于是举办了毒瘤R2,其实也不是非常毒瘤,还是一贯的风格。

  T1 : profit

  概括题意:带点权的“没有上司的舞会”。然而题意有一点歧义,得看样例才能懂。

  

 # include <cstdio>
# include <iostream> using namespace std; const int maxn=;
int n,firs[maxn],h,x,y,dep[maxn];
int a[maxn];
long long dp[maxn][];
struct edge
{
int too,nex;
}g[maxn<<]; void dfs (int x)
{
int j;
dp[x][]=a[x];
for (int i=firs[x];i;i=g[i].nex)
{
j=g[i].too;
if(dep[j]) continue;
dep[j]=dep[x]+;
dfs(j);
dp[x][]+=dp[j][];
dp[x][]+=max(dp[j][],dp[j][]);
}
} void add (int x,int y)
{
g[++h].too=y;
g[h].nex=firs[x];
firs[x]=h;
} int main()
{
freopen("profit.in","r",stdin);
freopen("profit.out","w",stdout); scanf("%d",&n);
for (int i=;i<=n;++i)
scanf("%d",&a[i]);
for (int i=;i<n;++i)
{
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
dep[]=;
dfs();
printf("%lld",max(dp[][],dp[][]));
return ;
}

profit

  T2 : Torch  

  任意给定一个正整数n(n<=100000),求一个最小的正整数m,使得n*m的十进制表示形式里只含有1和0。输入n如果有解输出m,无解则输出“No Solution”。

  首先写一个暴力,然后打表找规律,现在来看一下我打了哪些表:对于1-10000的答案,1-10000的二进制分解,答案的二进制分解,乘积的二进制分解,乘积分解质因数....于是这五个表都没啥用呢...真的找不到任何规律。后来想了一个方法优化暴力,直接枚举那个乘积,因为乘积只由0,1组成,可以用二进制来枚举,这样可以少枚举很多无效的情况,但是怎么判断无解呢?并没有什么办法,但是如果..乘积..超过longlong了是不是就不大好做了...所以只枚举乘积没有爆longlong的一些情况,如果这些都不出解就干脆输出无解好了。虽然看起来非常不科学,但是竟然A了...

  

 # include <cstdio>
# include <iostream> using namespace std; int n,m;
long long ans=;
int t[],len; long long check (int x)
{
long long an=;
len=;
while (x)
{
t[++len]=x%;
x/=;
}
for (int i=len;i>=;--i)
an=an*+t[i];
if(an<) return -;
if(an%n==) return an/n;
return -;
} int main()
{
freopen("torch.in","r",stdin);
freopen("torch.out","w",stdout); scanf("%d",&n);
for (int i=;i<=;++i)
{
ans=check(i);
if(ans!=-)
{
cout<<ans;
fclose(stdin);
fclose(stdout);
return ;
}
}
printf("No Solution");
fclose(stdin);
fclose(stdout);
return ;
}

Torch

  T3 : LongestRegularBracketsSequence

  真·神题,图片题面,极长文件名,反复检查了十多遍也不放心。

  求括号匹配最长串,SDWC讲过的,但是当时的方法极其复杂,其实也有简单一点的做法。

  

 # include <cstdio>
# include <iostream>
# include <cstring>
# include <string> using namespace std; const int maxn=;
string s;
int a[maxn],len,Top=;
int sta[maxn],pos[maxn]; int main()
{
freopen("LongestRegularBracketsSequence.in","r",stdin);
freopen("LongestRegularBracketsSequence.out","w",stdout);
cin>>s;
len=s.length();
for (int i=;i<len;++i)
{
if(s[i]=='(') sta[++Top]=,pos[Top]=i;
else if(s[i]=='[') sta[++Top]=,pos[Top]=i;
else
{
if(s[i]==')')
{
if(sta[Top]==)
a[ pos[Top] ]=a[i]=,Top--;
else Top=;
}
else if(s[i]==']')
{
if(sta[Top]==)
a[ pos[Top] ]=a[i]=,Top--;
else Top=;
}
}
}
int beg=,ans=,n=,ans_len=;
for (int i=;i<len;++i)
{
if(a[i]) n++;
else
{
if(n>ans_len) ans_len=n,ans=beg;
beg=i+;
n=;
}
}
if(n>ans_len) ans_len=n,ans=beg;
for (int i=;i<ans_len;++i)
printf("%c",s[i+ans]);
fclose(stdin);
fclose(stdout);
return ;
}

LongestRegularBracketsSequence

  

  T4 : MagicFingerprint

  粘图片真开心。

  

  

  看起来有点像数位dp,但是不是。其实就是一种逆向的推理,从7开始把一个数分裂成两个,但是我写炸了,最后就交了暴力。

  

 # include <cstdio>
# include <iostream> using namespace std; int a,b,ans;
int d[],len; bool check (int x)
{
len=;
while (x)
{
d[++len]=x%;
x/=;
}
while (len!=)
{
for (int i=;i<len;++i)
d[i]=max(d[i],d[i+])-min(d[i],d[i+]);
len--;
}
if(d[]==) return true;
return false;
} int main()
{
freopen("MagicFingerprint.in","r",stdin);
freopen("MagicFingerprint.out","w",stdout); scanf("%d%d",&a,&b);
for (int i=a;i<=b;++i)
if(check(i)) ans++;
printf("%d",ans); fclose(stdin);
fclose(stdout);
return ;
}

MagicFingerprint

  ---shzr

关于军训的模拟赛-R2的更多相关文章

  1. 【HHHOJ】NOIP模拟赛 玖 解题报告

    点此进入比赛 得分: \(100+20+100=220\)(还不错) 排名: \(Rank\ 16\) \(Rating\):\(+20\) \(T1\):[HHHOJ263]「NOIP模拟赛 玖」三 ...

  2. 5.4QBXT 模拟赛 (Rank1 机械键盘 蛤蛤)

    NOIP2016提高组模拟赛 ——By wangyurzee7 中文题目名称 纸牌 杯具 辣鸡 英文题目与子目录名 cards cups spicychicken 可执行文件名 cards cups ...

  3. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  4. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  5. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  6. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  7. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  8. 小奇模拟赛9.13 by hzwer

    2015年9月13日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...

  9. PKUSC 模拟赛 day1 下午总结

    下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...

随机推荐

  1. PetaPoco源代码学习--2.TableInfo、ColumnInfo类和Cache类

    当把常用的特性填写到POCO实体类时,执行数据库操作时,需要根据实体类上的特性信息进行相应的操作,PetaPoco中的TableInfo和ColumnInfo类就是用来保存实体类上的特性信息. Tab ...

  2. EasyUI 添加一行的时候 行号出现负数的解决方案

    原因是:在jquery_easyui.js 看方法 insertRow : function(_736, _737, row) 以下小代码算行号,if (opts.pagination) { _73c ...

  3. [亲测!超级简单] Centos 安装Python3.6环境

    配置好Python3.6和pip3安装EPEL和IUS软件源 yum install epel-release -y yum install https://centos7.iuscommunity. ...

  4. 浅谈对NaN的理解

    1.NaN : Not a Number 不是一个数字 2.NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内 3.判断是否是NaN, 方法一  :is.NaN(变量): 方法二   :Nu ...

  5. 【代码笔记】iOS-屏幕根据键盘自动的变化高度

    一,效果图. 二,代码. ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewContro ...

  6. AndroidGradle最实用的指南

    AndroidStudio目前已经成为Android开发人员的主流工具,而Gradle的原理,配置,使用仍然是很多android开发人员感到困惑的地方.网上虽然有很多相关文档,但是要么是只会用但是不知 ...

  7. java 使用 引用数据类型(以Scanner、Random模块为例)

    创建一个新变量 类型 变量名 = new 类型() 举个例子: Scanner sc = new Scaner() 使用引用数据类型中的功能: 变量.功能名字() Scanner类:接受键盘输入 1. ...

  8. LeetCode 题解之Reverse Words in a String

    1.题目描述 2.问题分析 使用一个vector存储每个单词. 3.代码 void reverseWords(string &s) { vector<string> v; for ...

  9. 11.@RequestParam @RequestBody @PathVariable 等参数绑定注解详解

    对@RequestMapping进行地址映射讲解之后,该篇主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用: 简介: handler method ...

  10. java io详解(1)

    一.java io结构图 二.java io的开始:文件 三.字节流: 一.java io结构图 流分类: 1.Java的字节流    InputStream是所有字节输入流的祖先,而OutputSt ...