摘要:
不难想,就是求中位数,但是一直没过是因为要求输出的第三个东西没大看明白。我以为偶数情况中间两数不同的话要输出2,看了别人的解题报告才明白要输出的是这两个数之间有多少个数。真费解。。//============================================================================// Name : 10057.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//==== 阅读全文
摘要:
要求每次都输出的约瑟夫环#include <iostream>#include <cstdio>#include <cstring>using namespace std;char s[100][30];int flag[100];int n, w, S, num, k;int main(){ while(scanf("%d", &n)!=EOF) { for(int i = 1;i <= n;i++) { scanf("%s", s[i]); flag[i] = 1; } scanf("%d, 阅读全文
摘要:
最小的显而易见,最大的类似求即可//============================================================================// Name : 10714.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================#i 阅读全文
摘要:
这个一开始上来没思路,感觉是贪心,但不知道怎么贪,看了看接替报告理解了:先把4,5,6这种单独占一个包需要的包求出来,3的话每4个算一个包,然后再算2的,按2的填前面那些包中的空隙,2的填完后如果2的还有剩余再添加包的个数,最后把前面所有包剩余的空隙都按1的填,如果不够再添加包的个数//============================================================================// Name : 311.cpp// Author : // Version :// Copyright : Your copyright notice// 阅读全文
摘要:
这道题要对全部为1的情况特判,因为这种情况下与一般的nim游戏下不同//============================================================================// Name : hdu1907.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//========================================================== 阅读全文
摘要:
明显的打表题,一开始想暴,发现太慢太慢了,后来加了个二分,很快就出答案了打表程序如下#include <iostream>#include <cstdio>using namespace std;long long sum[100000000];int l ,r, mid;int main(){ for(long long i = 1;i <= 100000000;i++) { sum[i] = sum[i-1]+i; } for(long long i = 2;i <= 100000000;i++) { l = 1; r = i; while(l < 阅读全文
摘要:
一道小水博弈,推一下就出来了#include <iostream>#include <cstdio>using namespace std;int N, n, m;int main() { scanf("%d", &N); while(N--) { scanf("%d%d", &n, &m); if(n%(m+1) == 0) printf("second\n"); else printf("first\n"); } return 0;} 阅读全文
摘要:
dfs+SG函数,游戏描述是你在一个有向图上有N棋子,你能将棋子进行移动,到棋子都移动到出度为0的顶点时就不能再移动,此时不能再移动的player就算输.这道题是最典型的有向图游戏的博弈,方法其实在ACM中的博弈游戏综述(2)中已经进行了介绍,做DFS深搜,把所有节点的SG值都算出来,然后对每个棋子的SG值进行异或运算,得出不等0就是WIN,0和的局面就是LOSE。//============================================================================// Name : 1524.cpp// Author : // Versi 阅读全文
摘要:
就是个标准的二分题,查找到应该插入的位置两边哪个数和这个数的差的绝对值最小即可//============================================================================// Name : 10487.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//======================================================= 阅读全文
摘要:
开始看错题了,以为是求第n个数为多少,实际应该是求第n位的数字是几,是一个0~9的数字,我用两个数组存,sum[i]为最大数为i时其前面有多少位数,f[i]表示最大为i时1~i共占了多少位//============================================================================// Name : 10706.cpp// Author : // Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style// 阅读全文