题目链接:https://cn.vjudge.net/contest/275079#problem/D 具体思路:首先,我们可以观察到1-n位数的种数连起来是一个很有规律的数列,然后我们开始倒序建立. 具体思路见代码: #include<iostream> #include<cstring> #include<iomanip> #include<stdio.h> #include<cmath> using namespace std; # def…
题目传送门 题意:问第k个长度为n的01串是什么(不能有相邻的1) 分析:dp[i][0/1] 表示前i个,当前第i个放1或0的方案数,先预处理计算,dp[i][1]只能有dp[i-1][0]转移过来.k -= dp[n][0] 表示当前放0的方案数不够了,所以必须放1,那么dp[n][0]个方案数都不能用了,相当于k减去这么多.详细解释 代码: #include <cstdio> #include <algorithm> #include <cmath> #inclu…
第13个位置第5个Bit :13>num[4] =>1 第四个bit 13-num[4]=5 :5<num[3] =>0 ,3-1 第三个Bit 5>num[2](3) 5-num[2]=2 ... #include<stdio.h> ]; void init() { num[]=; num[]=; ; ) { num[k]=num[k-]+num[k-]; k++; } } int main(void) { init(); int n,k; while(scan…
这道题目的题意就是使用题目中所给的Gate 函数,模拟出输入的结果 当然我们分析的时候可以倒着来,就是拿输入去减 每次Gate 函数都会有一个有效范围 这道题目求的就是,找出一种模拟方法,使得最小的有效范围最大化. 是一道[贪心]题 参考了https://github.com/boleynsu/acmicpc-codes 的做法 b 数组中存放是 Sequence 的下标 这是一个O(n)的算法 if (a[i-1]<a[i]){ int k=a[i]-a[i-1]; while (k--) b…
题目链接 题意有点坑: 给你一个N*N的矩阵,让你填入K个1,使之整个矩阵关于左上到右下的对角线对称,并且这个要求这个矩阵的字典序最大. 对矩阵的字典序的定义是从每一行的第一个元素开始比较,大着为字典序较大. 思路: 根据字典序的定义贪心的从第一个元素开始走,如果没被填1,就填1并且关于对角线的对称的位置也填1,共计消耗两个k. 如果是i==j,即对角线的位置只需要消耗一个k. 我的AC代码: #include <iostream> #include <cstdio> #inclu…
大意: 记$f(t)$表示字符串$t$的最长括号匹配子序列, 给定n个括号序列, 求它们重排后的最大f(t). 首先可以注意到一个括号序列中已经匹配的可以直接消去, 一定不会影响最优解. 那么这样最终就为n个类似于))))((的括号序列, 然后贪心排序即可 #include <iostream> #include <algorithm> #include <math.h> #include <cstdio> #include <set> #inc…
题目描述 对于一个给定的序列a1, -, an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一个比原来序列短的新序列.这一操作的代价是max(ai,ai+1).进行n-1次该操作后,可以得到一个长度为1的序列. 我们的任务是计算代价最小的reduce操作步骤,将给定的序列变成长度为1的序列. 输入格式 第一行为一个整数n( 1 <= n <= 1,000,000 ),表示给定序列的长度. 接下来的n行,每行一个整数a…
题目大意:求词典序下第K个长度为N且无相邻位置都为1的0.1序列.无解时输出-1. 例如: input:     output: 3 1        000(所有符合条件的序列有:000,001,010,100,101) KB     64bit IO Format:%I64d & %I64u 数据规模:0<N<44,0<K<10^9. 理论基础:无. 题目分析:先观察:1-5位的答案. 1:01 2:00 01 10 3:000 001 010100 101 4:000…
这几天扫了一下URAL上面简单的DP 第一题 简单递推 1225. Flags #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define LL long long LL dp[][]; int main() { int i,n; scanf("%d",&n); dp[][] = ;d…
列表: URAL 1225 Flags URAL 1009 K-based Numbers URAL 1119 Metro URAL 1146 Maximum Sum URAL 1203 Scientific Conference URAL 1353 Milliard Vasya's Function URAL 1260 Nudnik Photographer URAL 1012 K-based Numbers. Version 2 URAL 1073 Square Country URAL 1…