摘要:
【题意】根据一个排列,按照字典排列的顺序输出它的下面k个排列。 用C++的STL库的next_permutation()函数直接生成下一个排列 就可以了 3 2 1 的下一个排列会是 1 2 3#include#include#include#includeusing namespace std;int p[1111];int main(){ int t,n,k; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); for(int i=0;i<n;i++) scanf(... 阅读全文
摘要:
问题描述有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。输入格式第一行2个整数n,m。接下来一行n个整数表示n个格子的初始权值。接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权值为y,p=2时表示求区间[x,y]内格子权值和,p=3时表示求区间[x,y]内格子最大的权值。输出格式有若干行,行数等于p=2或3的操作总数。每行1个整数,对应了每个p=2或3操作的结果。样例输入4 31 2 3 42 1 31 4 33 1 4样例 阅读全文
摘要:
问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式 输入一行,包含一个正整数n。输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。样例输入52样例输出899998989989998899数据规模和约定1#include#include#includeusing namespace std;int n;int a[10];void dfs(int step){ if(step==3) { int ans; ans=(a[0]... 阅读全文
摘要:
问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1#include#include#includeusing namespace std;char s[1000002];int d[100];int get(char x){ if(x>='0'&&x='a'&&x='A'&&x=0; i--) { sum+=get(s[i])*f; f*=16; } int flag=0; if(sum) { pri... 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2058【题意】给出n 和m , 输出 从1。。。n 的n个数字中 相加为m的子区间段【思路】这里就是一个等差序列 用公式 sn=a1*n + (n-1)*n/2 已知sn枚举长度就可以算出 a1了 式子变形算出的a1是整数就可以直接输出结果了在这里我貌似想多了 因为算出的结果是一个double型 直接强制类型转化为int型 要是 1.999999 不就转化为了 1 而不是2了 所以这里我又分了两种情况考虑 但是提交上去时有一个地方写错了 使得没有进入第二个分支的情况 这样也ac了难道这些都不用考虑的吗记录几个 阅读全文
摘要:
这题可以直接用十六进制输入,然后进行十六进制的运算(其实不管是什么进制,在计算机中都是以二进制来计算的,只是按输入输出的格式不同,而强制转化为其它的进制),就像十进制的加法一样。这里要注意的是输入小于15位,结果超过了二进制中的32位而小于64位。所以这里用__int64的类型。输入输入出格式就是(%I64x,%I64X)。由于%I64X,不能输出负数,所以负数的输出要做处理。 1 #include 2 3 int main(){ 4 __int64 a,b; 5 int flag; 6 while(~scanf("%I64X%I64X",&a,&b)) / 阅读全文
摘要:
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11444【题意】给一张无向图 求从点0到点n-1 花费的最少时间 每条路径有一段开放的时间 每天只有在这段时间汽车才能开上这条路 汽车从中午( 即第720分钟 )开始走 一开始车里的电可以走4小时 每到一个点可以充电 充两分钟可以走一分钟【只过了 测试数据 代码先贴在这里】#include#include#include#include#include#include#include#define maxx 100000000using namespace 阅读全文
摘要:
ce了这么多次居然都没发现交错语言了 嗷嗷啊~~!@#¥%……&*【题意】给一张有向图 求从s点出发到t点话费的最少时间 每段路都有一个开放的时间和一个关闭是时间只要在走那一段路的时候 判断一下要等待多长时间 就行了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define maxx 100000000 9 10 using namespace std;11 struct node{int t;int a;int b;int w;};12 vector g[1002];1 阅读全文
摘要:
poj 2234Matches Gamehttp://poj.org/problem?id=2234 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main() 7 { 8 int i,j,n,m,t; 9 while(~scanf("%d",&n))10 {11 int ans=0;12 for(int i=0;i 2 #include 3 #include 4 using namespace std; 5 bool vis[1002]; 6 int s... 阅读全文
摘要:
http://lx.lanqiao.org/problem.page?gpid=T42【细心一点~】历届试题 九宫重排 时间限制:1.0s 内存限制:256.0MB问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动,可以形成第二个图所示的局面。 我们把第一个图的局面记为:12345678. 把第二个图的局面记为:123.46758 显然是按从上到下,从左到右的顺序记录数字,空格记为句点。 本题目的任务是已知九宫的初态和终态,求最少经过多少步的移动可以到达。如果无论多少步都无法到达,则输出-1。输... 阅读全文