【题目链接】

点击打开链接

【算法】

据说标算是暴力? 从N-200开始搜

不过我用了搜索+一些奇怪的剪枝,也A了....

【代码】

标程

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,cases;
bool check(ll x){
ll tmp=x;
for(int i=;i<=;i++){
tmp+=x%;
x/=;
}
if(tmp==n)return ;
return ;
}
int main(){
scanf("%I64d",&cases);
int flag;
while(cases--)
{
flag=;
scanf("%I64d",&n);
for(ll i=max(1LL,n-);i<=n;i++)
if(check(i)){
printf("%I64d\n",i);
flag=;
break;
}
if (flag==) puts("Stupid SiriusRen");
}
return ;
}

我的程序

#include<bits/stdc++.h>
using namespace std;
#define MAXL 17
typedef long long LL; LL i,j,l,T,N,len,lth,sum;
LL a[MAXL+][MAXL+],s[MAXL+][MAXL+],f[MAXL+],ans[MAXL+];
vector<LL> vec,res;
bool solved; template <typename T> inline void read(T &x) {
int f = ; x = ;
char c = getchar();
for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
} template <typename T> inline void write(T x) {
if (x < ) { putchar('-'); x = -x; }
if (x > ) write(x/);
putchar(x%+'');
} template <typename T> inline void writeln(T x) {
write(x);
puts("");
} inline void save_answer() {
int i;
for (i = ; i <= len; i++) res.push_back(ans[i]);
} inline void dfs(int dep) {
int i,l,r;
if (solved) return;
if (sum > N) return;
if (sum + * (s[len][len] - s[len][dep-]) < N) return;
if (dep > len) {
if (sum == N) {
solved = true;
save_answer();
}
} else {
l = ; r = ;
if (dep == ) l = ;
for (i = l; i <= r; i++) {
if (solved) break;
if (sum + a[len][dep] * i <= N) {
sum += a[len][dep] * i;
ans[++lth] = i;
dfs(dep+);
sum -= a[len][dep] * i;
--lth;
}
}
}
} void print() {
int i;
for (i = ; i < res.size(); i++) write(res[i]);
cout<<endl;
} int main() { freopen("amy.in","r",stdin);
freopen("amy.out","w",stdout); f[] = ;
for (i = ; i <= MAXL; i++) f[i] = (f[i-] << ) + (f[i-] << );
for (i = ; i <= MAXL; i++) {
a[i][i] = ;
for (j = i - ; j >= ; j--) {
a[i][j] = f[i-j] + ;
}
}
for (i = ; i <= MAXL; i++) {
for (j = ; j <= MAXL; j++) {
s[i][j] = s[i][j-] + a[i][j];
}
}
read(T);
while (T--) {
vec.clear(); res.clear();
solved = false;
read(N);
for (l = ; l <= MAXL; l++) {
if (s[l][l] * < N) continue;
if (a[l][] > N) break;
vec.push_back(l);
}
for (i = ; i < vec.size(); i++) {
lth = sum = ; len = vec[i];
dfs();
if (solved) break;
}
if (solved) print();
else puts("Stupid SiriusRen");
} return ; }

【扬中集训DAY2T2】 机智的AmyZhi的更多相关文章

  1. 计蒜客NOIP模拟赛5 D1T1 机智的 AmyZhi

    那年一个雨季,AmyZhi 在校门外弯身买参考书. 这时 SiriusRen 走过来,一言不合甩给她一道“自认为”很难的题: --------------- 给你一个数字 NN(NN 的范围是 11  ...

  2. 【扬中集训 DAY4T3】holiday

    [题目链接] 点击打开链接 [算法] 建C棵线段树即可,注意要用前缀和优化 [代码] 这是标程 #include <bits/stdc++.h> using namespace std; ...

  3. 【扬中集训 DAY4T1】跳马

    [题目链接] 点击打开链接 [算法] 数据范围很大,显然暴力是不能通过的 我们可以先打表,发现答案为 : 41 109 205 325 473 649 853 1085 1345 观察数列的差 68 ...

  4. 【扬中集训DAY1T1】 微信群

    [题目链接] 点击打开链接 [算法] 对问题稍加分析后,发现其实要求的就是 : C(N,K) + C(N,K+1) + C(N,K+2) + ... + C(N,N) 因为N最大10^9,K最大10^ ...

  5. 【扬中集训Day6T1】 白日梦

    [题目描述] 白日梦 (daydream.c/cpp/pas) 时间限制: 1 s  空间限制: 256 MB 题目描述 SR需要相当大的睡眠量 某日,他做了一个奇怪的梦,他梦见自己成为了怪物猎人,为 ...

  6. 【扬中集训DAY5T1】 交换矩阵

    [题目链接] 点击打开链接 [算法] 链表,对于每个点,存它的上,下,左,右分别是谁 [代码] #include<bits/stdc++.h> using namespace std; # ...

  7. [暑假集训Day2T2]走廊泼水节

    给定一棵n个点的图上的最小生成树,让你把它补成完全图,使得新图的MST还是给定的MST且边权和最小,输出需要增加的边权和. 设size[i]表示以i号为祖先的并查集的大小. 首先按边权排序,之后在做M ...

  8. 【集训第二天·翻水的老师】--ac自动机+splay树

    今天是第二天集训.(其实已经是第三天了,只是昨天并没有机会来写总结,现在补上) 上午大家心情都很愉快,因为老师讲了splay树和ac自动机. 但到了下午,我们的教练竟然跑出去耍了(excuse me? ...

  9. [2018HN省队集训D1T3] Or

    [2018HN省队集训D1T3] Or 题意 给定 \(n\) 和 \(k\), 求长度为 \(n\) 的满足下列条件的数列的数量模 \(998244353\) 的值: 所有值在 \([1,2^k)\ ...

随机推荐

  1. 什么是 Linux 发行版

    什么是Linux的发行版 就Linux的本质来说,它只是操作系统的核心,负责控制硬件.管理文件系统.程序进程等,并不给用户提供各种工具和应用软件.所谓工欲善其事,被必先利其器,一套在优秀的操作系统核心 ...

  2. 2017 ACM/ICPC Asia Regional Xian Online 记录

    题目链接  Xian

  3. codevs——1501 二叉树最大宽度和高度

    1501 二叉树最大宽度和高度  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 给出一个二叉树,输出它的 ...

  4. 深入GCD(二): 多核心的性能

    概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系).在低层,GCD全局dispatch queue仅仅是工作线程池的抽象.这些队列中的Bl ...

  5. Go -- 今日头条架构

    夏绪宏,今日头条架构师,专注对高性能大规模 Web 架构,云计算.性能优化.编程语言理论等方向,PHP committer,HHVM 项目贡献者.2009 加入百度,先后从事大规模 IDC 自运维设施 ...

  6. Android 支付宝快捷支付集成及ALI64错误的有效解决

    支付宝开放平台採用了RSA安全签名机制,开发人员能够通过支付宝公钥验证消息来源.同一时候可使用自己的私钥对信息进行加密. RSA算法及数字签名机制是支付宝开放平台与开发人员网关安全通信的基础.若开发人 ...

  7. [ACM] ZOJ 3725 Painting Storages (DP计数+组合)

    Painting Storages Time Limit: 2 Seconds      Memory Limit: 65536 KB There is a straight highway with ...

  8. UFLDL教程笔记及练习答案三(Softmax回归与自我学习***)

    :softmax回归 当p(y|x,theta)满足多项式分布,通过GLM对其进行建模就能得到htheta(x)关于theta的函数,将其称为softmax回归. 教程中已经给了cost及gradie ...

  9. 【转载】Http协议与TCP协议简单理解

    在C#编写代码,很多时候会遇到Http协议或者TCP协议,这里做一个简单的理解.TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上 ...

  10. wyh2000 and pupil

    wyh2000 and pupil  Accepts: 93  Submissions: 925  Time Limit: 3000/1500 MS (Java/Others)  Memory Lim ...