HDU 4911 Inversion
考点:归并排序
思路:这题呀比赛的时候忘了知道能够用归并排序算出逆序数,可是忘了归并排序的实质了。然后不会做……
由于看到题上说是相邻的两个数才干交换的时候。感觉归并排序好像不是得要相邻的呀。然后就这样晕……刚才又一次看了才发现,归并就是相邻的交换的,正好是用来求逆序数的,唉……真的是做这个归并排序比赛就来了……真好!
#include#include #include #include #include
HDU 4920 矩阵暴力
这题绝对坑死人了,尼玛比赛的时候一直在想那个800矩阵的数据怎么过,假设数据都是1与2,模2根本就不会有0,所以不知道能用什么算法比較快,靠就这样被坑了。
看见这么多人过。还以为别人这么吊呢。靠!然后用了那个什么什么算法忘了,都是T。然后两个小时想不出来怎么搞就放弃治疗了。要是那时知道是这样搞的。尼玛,真想跳楼了比赛的时候!。!!!
#include#include #include #include #include
HDU 4915 模拟
这样的题有点像CF上的第二题
不机智就不会了。比赛的时候没想出好的法子来 唉……
刚才又看了好久才理解。
#include#include #include #include #include
') s[i]=')'; if(s[i]=='(') l++; else if(s[i]==')') r++; if(l>num/2) return 0; if(l*2==num) l=r=num=0; } if(r>num/2) return 0; return 1; } int main() { //freopen("test.txt","r",stdin); while(~scanf("%s",str)) { int flag_l,flag_r,i; len=strlen(str); if(len&1) {puts("None");continue;} strcpy(s,str); flag_l=judge();//设没有'?' if(!flag_l) {puts("None");continue;} for(i=0;i<len;i++) { if(str[i]=='?
') { strcpy(s,str); s[i]=')'; flag_l=judge(); s[i]='('; flag_r=judge(); if(flag_l&&flag_r) {puts("Many");break;}; if(!flag_l&&!flag_r) {puts("None");break;} if(flag_l&&!flag_r) s[i]=')'; if(!flag_l&&flag_r) s[i]='('; } } if(i==len) puts("Unique"); } return 0; }
HDU 4919 JAVA大数+记忆化递归
import java.util.*;import java.math.*;import java.io.*;public class Main { private static BigInteger one=BigInteger.ONE; private static BigInteger two=BigInteger.valueOf(2); private static BigInteger three=BigInteger.valueOf(3); private static BigInteger four=BigInteger.valueOf(4); private static BigInteger six=BigInteger.valueOf(6); private static HashMapmap=new HashMap (); public static BigInteger dfs(BigInteger n) { if(n.equals(two)) return BigInteger.ZERO; if(n.equals(three)) return six; if(n.equals(four)) return four; if(map.containsKey(n)) return map.get(n); BigInteger ans,k=n.divide(two); if(n.mod(two).equals(one)) ans=four.multiply(dfs(k)).add(six.multiply(k)); else ans=two.multiply(dfs(k)).add(two.multiply(dfs(k.subtract(one)))).add(four.multiply(k)).subtract(four); map.put(n,ans); return ans; } public static void main(String args[]) { Scanner cin = new Scanner(System.in); while(cin.hasNextBigInteger()) { BigInteger n=cin.nextBigInteger(); System.out.println(dfs(n)); } }}