spoj 1108

2024-06-10 17:38
文章标签 spoj 1108

本文主要是介绍spoj 1108,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要求输出一个牌的顺序 使每隔1、2、.....、n翻牌后出现1 2 3 4 5 6 7 8 9 .... n

将牌想象成n个空格  正向推 空n个位置放n 循环 需优化

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
#define maxn 30000using namespace std;int a[maxn],n;int fff(int b, int t ,int c)
{int j = 0;while(1){if(c == n)c = 0;if(!a[++c])j++;if(j == b)break;}a[c] = t;return c;
}
int main()
{int t;scanf("%d",&t);while(t--){scanf("%d",&n);int b = 0;int c = 0;memset(a, 0, sizeof(a));for(int i = 0; i < n; i++){b = n-i;c = fff((i+1)%b+1, i+1, c);}for(int i = 1; i < n; i++){printf("%d ",a[i]);}printf("%d\n",a[n]);}return 0;
}


这篇关于spoj 1108的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1048827

相关文章

【SPOJ】1825 Free tour II 点分治

传送门:【SPOJ】1825 Free tour II 题目分析:敲了两遍。。。 本题是论文题,具体见漆子超论文《分治算法在树的路径问题中的应用》。 在以root为根的第 i 棵子树上,我们用G[ i ,j ]表示root的第 i 棵子树的路径上严格有 j 个黑点的路径的最长长度。用F[ i ,j ]表示在root为根的第 i 棵子树的路径上不超过 j 个黑点的路径的最长长度。因

【SPOJ】Triple Sums【FFT】

传送门:【SPOJ】Triple Sums 题目分析: 首先我们不考虑 i<j<k i<j<k这个条件,构造多项式: Y=∑xai \qquad\qquad\qquad Y = \sum x^{a_i} 那么 ai+aj+ak=S ai+aj+ak=S的个数即 xai+aj+ak=S x^{a_i+a_j+a_k=S}的个数,等价于 Y3中xS Y^3中x^S的系数。 然后我们考虑容斥

【C++题解】1108 - 正整数N转换成一个二进制数

问题三:1108 - 正整数N转换成一个二进制数 类型:字符串、进制转换 题目描述: 输入一个不大于 32767 的整数 n ,将它转换成一个二进制数。 输入: 输入只有一行,包括一个整数 n (0≤n≤32767)。 输出: 输出只有一行。 样例: 输入: 100 输出: 1100100 输入: 0 输出: 0 完整代码如下: #inclu

HDU 1108(最小公倍数)

题意:如题。 #include <iostream>#include <vector>using namespace std;int dd(int x, int y);void main(){vector<vector<int> > tmpbox;unsigned int a;unsigned int b;while (cin >> a >> b){if (a > 100

【SPOJ】【AGGRCOW】

总结:函数之间存在依赖。  然后一处修改了但是忘记修改另外的一处了。。。 #include <iostream>#include <cstring>#include <cmath>#include <queue>#include <stack>#include <list>#include <map>#include <set>#include <string>#inclu

1108:棋盘游戏

题目描述 小明和小红在玩一种棋盘游戏,棋盘的尺寸为n个方格*m个方格。一开始在棋盘的右上角(1,m)放一枚硬币,每次一个人可以将硬币向左、下或左下的方格移动。 当某个人无法再移动硬币了,那么这个人就输了。游戏总是小明先开始,如果他们两个每步都是最优策略,则谁将赢得游戏? 输入格式 输入包含多组测试数据。每组输入两个整数n和m(0<n,m<=2000)。 当n=m=0时,输入结束。 输出

SPOJ 1825 FTOUR2 - Free tour II (树上点分治)

题目地址:SPOJ 1825 树分治的题果然除了模板题就是金牌题啊。。。这题是一道论文题,想了好长时间。。。。终于过了,,,,注意一个坑点,如果权值全部为负的话,是可以不选任意一条边的,这样权值为0。。。也就是说初始值要设为0。。。 具体看漆子超的论文《分治算法在树的路径问题中的应用》。。 代码如下: #include <iostream>#include <string.h>#inc

SPOJ 1825 Free tour II

论文题: 在以root为根的第 i 棵子树上,我们用G[ i ,j ]表示root的第 i 棵子树的路径上严格有 j 个黑点的路径的最长长度。用F[ i ,j ]表示在root为根的第 i 棵子树的路径上不超过 j 个黑点的路径的最长长度。 因为所有子树里包含黑点数最多的路径的包含黑点数len可以O(N)求出,我们按照每棵子树的len从小到大的顺序遍历,这样就能将G和F数组降低一维,以G[ i

SPOJ - QTREE (树链剖分)

基础的树链剖分题目,不过是边权,可以向下映射成点权或者按边剖分。 VIEW CODE #include <iostream>#include<stdio.h>#include<cmath>#include<string.h>#include<algorithm>#include<string>using namespace std;const int mmax=100

1108. IP 地址无效化

给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。 示例 1: 输入:address = "1.1.1.1"输出:"1[.]1[.]1[.]1" 示例 2: 输入:address = "255.100.50.0"输出:"255[.]100[.]50[.]0" 提示: