【扬中集训DAY2T2】 机智的AmyZhi
【题目链接】
【算法】
据说标算是暴力? 从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的更多相关文章
- 计蒜客NOIP模拟赛5 D1T1 机智的 AmyZhi
那年一个雨季,AmyZhi 在校门外弯身买参考书. 这时 SiriusRen 走过来,一言不合甩给她一道“自认为”很难的题: --------------- 给你一个数字 NN(NN 的范围是 11 ...
- 【扬中集训 DAY4T3】holiday
[题目链接] 点击打开链接 [算法] 建C棵线段树即可,注意要用前缀和优化 [代码] 这是标程 #include <bits/stdc++.h> using namespace std; ...
- 【扬中集训 DAY4T1】跳马
[题目链接] 点击打开链接 [算法] 数据范围很大,显然暴力是不能通过的 我们可以先打表,发现答案为 : 41 109 205 325 473 649 853 1085 1345 观察数列的差 68 ...
- 【扬中集训DAY1T1】 微信群
[题目链接] 点击打开链接 [算法] 对问题稍加分析后,发现其实要求的就是 : C(N,K) + C(N,K+1) + C(N,K+2) + ... + C(N,N) 因为N最大10^9,K最大10^ ...
- 【扬中集训Day6T1】 白日梦
[题目描述] 白日梦 (daydream.c/cpp/pas) 时间限制: 1 s 空间限制: 256 MB 题目描述 SR需要相当大的睡眠量 某日,他做了一个奇怪的梦,他梦见自己成为了怪物猎人,为 ...
- 【扬中集训DAY5T1】 交换矩阵
[题目链接] 点击打开链接 [算法] 链表,对于每个点,存它的上,下,左,右分别是谁 [代码] #include<bits/stdc++.h> using namespace std; # ...
- [暑假集训Day2T2]走廊泼水节
给定一棵n个点的图上的最小生成树,让你把它补成完全图,使得新图的MST还是给定的MST且边权和最小,输出需要增加的边权和. 设size[i]表示以i号为祖先的并查集的大小. 首先按边权排序,之后在做M ...
- 【集训第二天·翻水的老师】--ac自动机+splay树
今天是第二天集训.(其实已经是第三天了,只是昨天并没有机会来写总结,现在补上) 上午大家心情都很愉快,因为老师讲了splay树和ac自动机. 但到了下午,我们的教练竟然跑出去耍了(excuse me? ...
- [2018HN省队集训D1T3] Or
[2018HN省队集训D1T3] Or 题意 给定 \(n\) 和 \(k\), 求长度为 \(n\) 的满足下列条件的数列的数量模 \(998244353\) 的值: 所有值在 \([1,2^k)\ ...
随机推荐
- AC日记——NASA的食物计划 洛谷 P1507
题目背景 NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安 全技术问题一直大伤脑筋,因此在各方压力下终止了航天 飞机的历史,但是此类事情会不会在以后发生,谁也无法 保证,在遇到这类航天问题时,解 ...
- python两个类之间变量和函数的调用
1.class_a() class_b() 2.class_b使用class_a中的变量和函数 3.变量class_a中:class_a.num=... 函数class_b中:先实例化class_a( ...
- iOS APP 的生命周期
1.在手机桌面上点击APP图标 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDi ...
- android 播放MP3
<?xml version="1.0" encoding="utf-8"?> <!-- 定义当前布局的基本LinearLayout --> ...
- android Activity生命周期的例子
package com.example.yanlei.yl2; import android.app.AlertDialog; import android.content.DialogInterfa ...
- 基于centos 创建一个stress镜像
最近需要学习docker的Cgroups机制,需要用到stress进行测试,前期工作就是自己创建一个stress镜像. 新建一个 Dockerfile 文件 [vagrant@localhost ~] ...
- 【hibernate spring data jpa】执行了save()方法 sql语句也执行了,但是数据并未插入数据库中
执行了save()方法 sql语句也执行了,但是数据并未插入数据库中 解决方法: 是因为执行了save()方法,也执行了sql语句,但是因为使用的是 @Transactional 注解,不是手动去提 ...
- Cocos2d-x JSB 自己主动绑定bindings
Javascript Binding (简称JSB) 自己主动绑定教程. Cocos2d-x JSB 自己主动绑定bindings-generator (以下简称B-G) 使用心得 假设想弄清深入原理 ...
- php-cpp用来开发php的拓展
官网: http://www.php-cpp.com/documentation/install, 找时间要学一下.
- wiki平台工具
1. confluence 评点: 好用,与world类似.模板多.